本篇文章不涉及更深的知识,知识帮助你调用WebService
1:Webserver它的请求协议Soap1.2协议,而不是http,所以你需要下载ksoap2
2:需要找到请求的3个重要的东西
(1):命名空间 (2)方法名 (3)访问地址
如果你是使用SqaoUi,那么打开双击Project下的任意个文件里面的一个命名可以得到
![](https://img.haomeiwen.com/i4276737/531a08496e2ed84e.png)
WSDL URL 这个就是访问地址
Namespace这个就是命名空间
SOAP Version则是版本
这2个难找,所以我特别写出来
至于网页的建议参考blog.csdn.net/lyq8479/article/details/6420398 柳老师这篇写的很详细
设置命名空间、访问地址、方法名
String SOAP_ACTION = NAMESPACE+METHOD_NAME
String METHOD_NAME =//方法名
String NAMESPACE =;//命名空间
String URL =
try{
SoapObject Request =newSoapObject(NAMESPACE, METHOD_NAME);
//添加传入参数,根据具体格式测试
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");
//创建soap数据
SoapSerializationEnvelope soapEnvelope =newSoapSerializationEnvelope(SoapEnvelope.VER12);//这里是版本号
soapEnvelope.dotNet=true;
你的服务端是Java写的或者PHP的话“”“soapEnvelope.dotNet = true;”这个一定要设置成 false
soapEnvelope.setOutputSoapObject(Request);
HttpTransportSE transport =newHttpTransportSE(URL);
// soap协议发送
transport.call(SOAP_ACTION, soapEnvelope);
// soap请求完成后返回数据并转换成字符串
resultString= (SoapPrimitive) soapEnvelope.getResponse();
Log.i(TAG,"Result Celsius: "+resultString);
}catch(Exception ex) {
Log.e(TAG,"Error: "+ ex.getMessage());
}
最后对了,不能在主线程中运行,开一个AsyncTask来运行
网友评论