本篇文章不涉及更深的知識(shí),知識(shí)幫助你調(diào)用WebService
1:Webserver它的請(qǐng)求協(xié)議Soap1.2協(xié)議,而不是http,所以你需要下載ksoap2
2:需要找到請(qǐng)求的3個(gè)重要的東西
(1):命名空間 (2)方法名 (3)訪問地址
如果你是使用SqaoUi,那么打開雙擊Project下的任意個(gè)文件里面的一個(gè)命名可以得到

WSDL URL 這個(gè)就是訪問地址
Namespace這個(gè)就是命名空間
SOAP Version則是版本
這2個(gè)難找,所以我特別寫出來
至于網(wǎng)頁(yè)的建議參考blog.csdn.net/lyq8479/article/details/6420398? 柳老師這篇寫的很詳細(xì)
設(shè)置命名空間、訪問地址、方法名
String SOAP_ACTION = NAMESPACE+METHOD_NAME
String METHOD_NAME =//方法名
String NAMESPACE =;//命名空間
String URL =
try{
SoapObject Request =newSoapObject(NAMESPACE, METHOD_NAME);
//添加傳入?yún)?shù),根據(jù)具體格式測(cè)試
Request.addProperty("user_id","admin");
Request.addProperty("user_pwd","123");
Request.addProperty("comp_machine_code","cs");
Request.addProperty("version_name","1");
Request.addProperty("mobile_type","1");
//創(chuàng)建soap數(shù)據(jù)
SoapSerializationEnvelope soapEnvelope =newSoapSerializationEnvelope(SoapEnvelope.VER12);//這里是版本號(hào)
soapEnvelope.dotNet=true;
你的服務(wù)端是Java寫的或者PHP的話“”“soapEnvelope.dotNet = true;”這個(gè)一定要設(shè)置成 false
soapEnvelope.setOutputSoapObject(Request);
HttpTransportSE transport =newHttpTransportSE(URL);
//? ? ? ? ? soap協(xié)議發(fā)送
transport.call(SOAP_ACTION, soapEnvelope);
//? ? ? ? ? ? soap請(qǐng)求完成后返回?cái)?shù)據(jù)并轉(zhuǎn)換成字符串
resultString= (SoapPrimitive) soapEnvelope.getResponse();
Log.i(TAG,"Result Celsius: "+resultString);
}catch(Exception ex) {
Log.e(TAG,"Error: "+ ex.getMessage());
}
最后對(duì)了,不能在主線程中運(yùn)行,開一個(gè)AsyncTask來運(yùn)行