注意:要先下載ksoap2.jarweb
關鍵代碼:工具
private String namespace="http://WebXml.com.cn/";
private String methodName="getMobileCodeInfo";
private String url="http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx";url
private String getPhoneNamberAddress(String phoneNamber)
{
//SoapObject實例
SoapObject soap=new SoapObject(namespace, methodName);
soap.addProperty("mobileCode", phoneNamber);//設置請求參數 ,參數必須和API接口中保持一致
soap.addProperty("userID", "");//免費客戶spa
//SoapSerializationEnvelope實例
SoapSerializationEnvelope envelope =new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet=true;
envelope.setOutputSoapObject(soap);//發送請求 等價於envelop.bodyOut=soap;debug
//AndroidHttpTransport實例
AndroidHttpTransport ht=new AndroidHttpTransport(url);
ht.debug =true;xml
獲取結果:
//SoapPrimitive result=null;
SoapObject result =null;
try
{
ht.call(namespace+methodName,envelope);
result = (SoapObject) envelope.bodyIn; //方法1
// 獲取返回的結果
//result = ( SoapPrimitive)envelope.getResponse();//方法2
//result.toString();
} catch (Exception e)
{
e.printStackTrace();
}
return result.getProperty("getMobileCodeInfoResult").toString();
}對象
一個工具類:
public class WSUtils {
/**
*
* @description:調用webservice接口
* @param nameSpace 方法名空間
* @param methodName 方法名
* @param params 請求參數
* @param wsdl url地址
* @return SoapObject對象
* @throws Exception
*/
public static SoapObject callWS(String nameSpace, String methodName, Map params, String wsdl) throws Exception {
final String SOAP_ACTION = nameSpace + methodName;
SoapObject soapResult = null;
//SoapObject實例
SoapObject mSoapObject = new SoapObject(nameSpace, methodName);
if (params != null && !params.isEmpty()) {
for (Iterator it = params.entrySet().iterator(); it.hasNext();) {
// 遍歷MAP
Map.Entry<String, Object> e = (Map.Entry<String, Object>) it.next();
mSoapObject.addProperty(e.getKey().toString(), e.getValue());//設置請求參數
}
}
//SoapSerializationEnvelope實例
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER10);// SOAP
envelope.dotNet = true;
envelope.bodyOut = mSoapObject;//發送請求
//HttpTransportSE實例
HttpTransportSE ht = new HttpTransportSE(wsdl,10*1000);
ht.debug =true;
//獲取結果
ht.call(SOAP_ACTION, envelope);
soapResult = (SoapObject) envelope.bodyIn;
return soapResult;
}
}接口