WebService的使用
来源:互联网 发布:怎么在淘宝搜高仿lv 编辑:程序博客网 时间:2024/06/05 00:30
首先导包 ksoap2-android-assembly-3.0.0-jar-with-dependencies.jar,构建路径。
使用方法:
(1) 指定webservice的命名空间和调用的方法名
(2)设置调用方法的参数值,如果没有参数,可以省略
(3) 生成调用Webservice方法的SOAP请求信息。该信息由SoapSerializationEnvelope对象描述
(4) 创建HttpTransportsSE对象。通过HttpTransportsSE类的构造方法可以指定WebService的WSDL文档的URL
(5)使用call方法调用WebService方法
(6)使用getResponse方法获得WebService方法的返回结果
配置网络访问权限:<uses-permission android:name="android.permission.INTERNET" />
代码演示:
package com.example.testcanvas;import java.io.IOException;import java.io.UnsupportedEncodingException;import org.ksoap2.SoapEnvelope;import org.ksoap2.serialization.SoapObject;import org.ksoap2.serialization.SoapSerializationEnvelope;import org.ksoap2.transport.HttpTransportSE;import org.xmlpull.v1.XmlPullParserException;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;public class WebServiceTest extends Activity{private Button btn;private TextView tv;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.weather);btn = (Button) findViewById(R.id.weather_button1);tv = (TextView) findViewById(R.id.weather_textView1);btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {String cityName = "成都";String s = getWeather(cityName);tv.setText(s);}});}//命名空间private static String NAMESPACE = "http://WebXml.com.cn/";//调用方法private static String METHOD_NAME="getWeatherbyCityName";//WebService的地址private static String url = "http://www.webxml.com.cn/webservices/weatherwebservice.asmx";private String weatherToday;private SoapObject detail;//根据城市获取天气信息的网址private static String SOAP_ACTION = "http://WebXml.com.cn/getWeatherbyCityName";/** * 获得天气信息 * @param cityName 城市名称 * @return */public String getWeather(String cityName){String s = "";try {SoapObject soap = new SoapObject(NAMESPACE, METHOD_NAME);soap.addPropertyIfValue("theCityName", cityName);//生成调用WebService方法的SOAP请求信息SoapSerializationEnvelope envleope = new SoapSerializationEnvelope(SoapEnvelope.VER11);envleope.bodyOut=soap;envleope.dotNet=true;envleope.setOutputSoapObject(soap);//访问服务器HttpTransportSE ht = new HttpTransportSE(url);//使用call方法调用WebService方法ht.call(SOAP_ACTION, envleope);ht.debug=true;//得到响应天气数据detail = (SoapObject)envleope.getResponse();//服务器返回一个一维数组 String(22),共有23个元素。//String(0) 到 String(4):省份,城市,城市代码,城市图片名称,最后更新时间。//String(5) 到 String(11):当天的 气温,概况,风向和风力,天气趋势开始图片名称,天气趋势结束图片名称,现在的天气实况,天气和生活指数。//String(12) 到 String(16):第二天的 气温,概况,风向和风力。//String(17) 到 String(21):第三天的 气温,概况,风向和风力。//String(22) 被查询的城市或地区的介绍 Toast.makeText(this, detail.toString(), Toast.LENGTH_LONG).show();s = parseWeather(detail);} catch (IOException e) {e.printStackTrace();} catch (XmlPullParserException e) {e.printStackTrace();}return s;}/** * 获得天气信息中一部分信息 * @param detail * @return * @throws UnsupportedEncodingException */private String parseWeather(SoapObject detail) throws UnsupportedEncodingException{String date = detail.getProperty(6).toString();weatherToday = "今天:"+date.split(" ")[0];weatherToday = weatherToday+"\n 天气:"+date.split(" ")[1];weatherToday = weatherToday+"\n 温度:"+detail.getProperty(5).toString();weatherToday = weatherToday+"\n 风力:"+detail.getProperty(7).toString();return weatherToday;}}
- 关于WebService的使用.
- WebService的简单使用
- webservice 的使用问题
- webService的使用步骤
- webservice的使用
- WebService的使用
- WebService的简单使用
- webservice的使用
- 关于webservice的使用
- webservice的配置使用
- webService的使用
- WebService的相关使用
- 简述WebService的使用
- php的webservice使用
- webservice的使用
- WebService的使用
- webservice的使用
- Android Webservice的使用
- 面试 智力题 概率题 游戏题
- 传值 传指针 传引用
- SQLServer事务的隔离级别
- Horspool字符串匹配算法
- 《UNIX环境高级编程》笔记--chown,fchown和lchown函数
- WebService的使用
- 李开复:如何远离幸福延迟综合症
- .bmp文件格式
- 获取域名 主机地址 网址参数
- Object encoding编码方式
- 孪生素数问题
- 【Cocos2d-X游戏实战开发】捕鱼达人之游戏场景的创建(六)
- 字符串处理算法(三)按指定位置交换字符串两部分的位置
- (二)poj1318