天气预报工具类
来源:互联网 发布:淘宝上有个模特叫什么 编辑:程序博客网 时间:2024/06/03 23:39
package com.example.weather;import java.util.ArrayList;import java.util.List;import org.ksoap2.SoapEnvelope;import org.ksoap2.serialization.SoapObject;import org.ksoap2.serialization.SoapSerializationEnvelope;import org.ksoap2.transport.HttpTransportSE;import android.util.Log;public class WeatherWebServiceUtil {// 定义Web Service的命名空间 final static String SERVICE_NS = "http://WebXml.com.cn/"; // 定义Web Service提供服务的URL final static String SERVICE_URL = "http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx"; /** * 获取省份地区 * @return */public static List<String> getProvinceList(){List<String> provinceList = null;// 需要调用的方法名(获得本天气预报Web Services支持的洲、国内外省份和城市信息) String methodName = "getRegionProvince"; // 创建HttpTransportSE传输对象 HttpTransportSE httpTranstation = new HttpTransportSE(SERVICE_URL); httpTranstation.debug = true; // 使用SOAP1.1协议创建Envelop对象 SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); // 实例化SoapObject对象 SoapObject soapObject = new SoapObject(SERVICE_NS, methodName); envelope.bodyOut = soapObject; // 设置与.Net提供的Web Service保持较好的兼容性 envelope.dotNet = true; try{ // 调用Web Service httpTranstation.call(SERVICE_NS + methodName, envelope); if (envelope.getResponse() != null){ // 获取服务器响应返回的SOAP消息 SoapObject result = (SoapObject) envelope.bodyIn; SoapObject detail = (SoapObject) result.getProperty(methodName + "Result"); provinceList = parseProvinceOrCity(detail); } }catch (Exception e){ e.printStackTrace(); } return provinceList;}/** * 根据地区或省份获取城市 * @param province * @return */public static List<String> getCityListByProvince(String province){List<String> cityList = null; String methodName = "getSupportCityString"; // 创建HttpTransportSE传输对象 HttpTransportSE httpTranstation = new HttpTransportSE(SERVICE_URL); httpTranstation.debug = true; // 使用SOAP1.1协议创建Envelop对象 SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); // 实例化SoapObject对象 SoapObject soapObject = new SoapObject(SERVICE_NS, methodName); soapObject.addProperty("theRegionCode", province); envelope.bodyOut = soapObject; // 设置与.Net提供的Web Service保持较好的兼容性 envelope.dotNet = true; try{ // 调用Web Service httpTranstation.call(SERVICE_NS + methodName, envelope); if (envelope.getResponse() != null){ // 获取服务器响应返回的SOAP消息 SoapObject result = (SoapObject) envelope.bodyIn; SoapObject detail = (SoapObject) result.getProperty(methodName + "Result"); cityList = parseProvinceOrCity(detail); } }catch (Exception e){ e.printStackTrace(); } return cityList;}/** * 根据城市获取5天的天气预报信息 * @param city * @return */public static SoapObject getWeatherByCity(String city){String methodName = "getWeather"; // 创建HttpTransportSE传输对象 HttpTransportSE httpTranstation = new HttpTransportSE(SERVICE_URL); httpTranstation.debug = true; // 使用SOAP1.1协议创建Envelop对象 SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); // 实例化SoapObject对象 SoapObject soapObject = new SoapObject(SERVICE_NS, methodName); soapObject.addProperty("theCityCode", city); envelope.bodyOut = soapObject; // 设置与.Net提供的Web Service保持较好的兼容性 envelope.dotNet = true; try{ // 调用Web Service httpTranstation.call(SERVICE_NS + methodName, envelope); if (envelope.getResponse() != null){ // 获取服务器响应返回的SOAP消息 SoapObject result = (SoapObject) envelope.bodyIn; SoapObject detail = (SoapObject) result.getProperty(methodName + "Result"); return detail; } }catch (Exception e){ e.printStackTrace(); } return null;}/** * 解析SoapObject * @param detail * @return */public static List<String> parseProvinceOrCity(SoapObject detail){ ArrayList<String> result = new ArrayList<String>(); for (int i = 0; i < detail.getPropertyCount(); i++){ String str = detail.getProperty(i).toString(); result.add(str.split(",")[0]); } return result; } }
0 0
- 天气预报工具类
- [android开发]天气预报项目的开发之天气工具类-2
- 一个天气预报的类
- 天气预报
- 天气预报
- 天气预报
- 天气预报
- 天气预报
- 天气预报
- 天气预报
- 天气预报
- 天气预报
- 天气预报
- 天气预报
- 天气预报
- 天气预报
- 天气预报
- 天气预报
- 关于怎样搭建HLML5游戏开发框架的方法
- IOS中对Url进行编码和解码
- HBITMAP、CBitmap与BITMAP的区别与联系及转换
- 在android 上OpenGL ES开发学习资料
- Linux下C++访问MySQL
- 天气预报工具类
- UIView视图移动,抖动效果,定时器,动画block
- VC++堆栈大小设置
- java--javadoc--Javadoc转换chm帮助文档的四种方法总结
- 解决myeclipse引用单独的js外部文件时中文编码问题(解决的是js文件本身编码问题)
- JSON数据解析
- hive优化
- Oracle中加密PL/SQL代码
- C# windows服务程序 账户名无效或不存在