Android利用soap WSDL與Webservice通信

 

需要6個步驟,關於下面代碼中的NAME_SPACE等,可以通過一個軟件SoapUI,來連接服務器獲得。

 

	/** 命名空間. */  
    private final static String NAME_SPACE = urn:soap;  
  
    /** 方法. */  
    private final static String METHOD_NAME = Add;  
  
    /** WSDL文件的URL. */  
    private final static String WSDL_URL = https://192.168.1.112:80/index.php/service?wsdl;  

 

 

//1. 指定WebService的命名空間和調用的方法名
		    SoapObject  request=new SoapObject(NAME_SPACE, METHOD_NAME);

 //2. 設置調用方法的參數值,這一步是可選的,如果方法沒有參數,可以省略這一步
		    request.addProperty(a,123);
		    request.addProperty(b,12);

//3. 生成調用WebService方法的SOAP請求信息。該信息由SoapSerializationEnvelope對象描述
	        SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER10);
	        envelope.bodyOut = request;

 //4. 創建HttpTransportSE對象。通過HttpTransportSE類的構造方法可以指定WebService的WSDL文檔的URL
	        HttpTransportSE ht = new HttpTransportSE(WSDL_URL);      
	        ht.debug = true;

//5. 使用call方法調用WebService方法

List headerList =ht.call(null, envelope,null);

註意,如果不需要頭文件,隻需要傳遞前兩個參數即可

 

 

//6. 使用getResponse方法獲得WebService方法的返回結果
	            SoapObject result=(SoapObject)envelope.bodyIn;
	            Log.i(========,result.getProperty(Add).toString());

 

發佈留言