使用soap請求webservice,你首先得知道webservice的命名空間(Namespace)、方法名(Methodname)和請求地址(URL)
代碼很簡單,判斷一個QQ號是否在線
返回數據:String,Y = 在線;N = 離線;E = QQ號碼錯誤;A = 商業用戶驗證失敗;V = 免費用戶超過數量
// URL
final String SOAPURL="http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx";
// Namespace
final String SOAPSPACE = "http://WebXml.com.cn/";
// Method
final String USERFORMOB = "qqCheckOnline";
// SoapObject 是已經被序列化後的對象,如果這裏用 jsonObject 容易在htse.call(SOAP_ACTION, ssel); 拋出異常
SoapObject soapObject = new SoapObject(SOAPSPACE, USERFORMOB);
soapObject.addProperty("qqCode", "727417703");
String strObj = null;
try {
final String SOAP_ACTION = soapObject.getNamespace() + soapObject.getName();
// 常量SoapEnvelope.VER10:對應於SOAP 1.0規範
// 常量SoapEnvelope.VER11:對應於SOAP 1.1規範
// 常量SoapEnvelope.VER12:對應於SOAP 1.2規範
SoapSerializationEnvelope ssel = new SoapSerializationEnvelope(SoapEnvelope.VER10);
ssel.bodyOut = soapObject;
ssel.dotNet = true;
ssel.setOutputSoapObject(soapObject);
HttpTransportSE htse = new HttpTransportSE(SOAPURL + "?wsdl");
// 設置可調試狀態,用於調試程序
htse.debug = true;
htse.call(SOAP_ACTION, ssel);
String strObj = ((Object) ssel.getResponse()).toString();
Log.d("jokey", strObj);
} catch (Exception e) {
e.printStackTrace();
}
輸出結果:
測試webservice地址:http://www.webxml.com.cn/
ksoap2 Jar包下載地址:http://download.csdn.net/detail/jokey_wz/9611346
Demo下載地址:http://download.csdn.net/detail/jokey_wz/9611372