码迷,mamicode.com
首页 > 移动开发 > 详细

Android调用webService

时间:2017-11-13 19:56:21      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:internet   bbb   pull   jar   rac   mission   one   response   sdn   

Android调用WebService

首先你需要的东西。一个ksoap的jar包。下面提供了下载地址。

http://download.csdn.net/download/ty0038/10116757

下载jar包。复制项目lib文件夹下。右击jar包->add as library... 点击OK。

首先在需要在Manifest里面注册权限,以免后面忘记!

<uses-permission android:name="android.permission.INTERNET" />

接下来还是贴代码吧!代码中有注释

/*
* 天气webService
* */
public void tianqi(){
//命名空间
    String namespace = "http://WebXml.com.cn/";
String transUrl = "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx";
String method = "getSupportCity";
int envolopeVersion = SoapEnvelope.VER12;

String soapAction = "http://WebXml.com.cn/getSupportCity";
//指定webservice的命名空间和调用方法
    SoapObject request = new SoapObject(namespace,method);
//提交需要提交的参数
request.addProperty("byProvinceName","湖南");
//生产调用webService方法的SOAP请求信息,并指定SOAP的版本 ,这个版本 根据 asdl文件中是1.1还是1.2协议来指定的. 一般VER11或者VER12都可以,以前还有VER10
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(envolopeVersion);
envelope.setOutputSoapObject(request);
envelope.dotNet =true;
HttpTransportSE se = new HttpTransportSE(transUrl);
try {
  //ver11,第一个参数不能为空 。envolopeVersion为ver12第一个参数可以为空,必须接口支持ver12才行
se.call(null,envelope);
SoapObject response = (SoapObject) envelope.bodyIn;
//response的处理需要根据返回的具体情况,基本都要进行下面一步
SoapObject o = (SoapObject) response.getProperty(0);
Log.e("bbb","MainActivity.java->run():size="+o.getPropertyCount());
 //当前方法返回的结果为一个数组 
for (int i = 0; i<o.getPropertyCount();i++){
Log.e("bbb","MainActivity.java->run(): =="+o.getPropertyAsString(i));
result=result+o.getPropertyAsString(i);
}
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
}
最后调用这方法:
Button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

new Thread(new Runnable() {
@Override
public void run() {
tianqi();
MainActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
resultView.setText(result);
}
});
}
}).start();
}
});

其中的名门空间里的字段是可以在
http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?WSDL 中找到的。
targetNamespace="http://WebXml.com.cn/" 这个是namespace地址。
s:element name="getSupportCity" 以及各个方法名。
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" 以及版本号12。



Android调用webService

标签:internet   bbb   pull   jar   rac   mission   one   response   sdn   

原文地址:http://www.cnblogs.com/zhuhao0812/p/7827337.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!