博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
7.Web Service 调用天气代码
阅读量:6049 次
发布时间:2019-06-20

本文共 2373 字,大约阅读时间需要 7 分钟。

1.

1 2500多个城市天气预报 WEB服务公用事业 2 Endpoint:http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx 3 Disco:http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?disco 4 WSDL:http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl 5  6 代码如下: 7  8 import java.rmi.RemoteException; 9 10 import javax.xml.namespace.QName;11 import javax.xml.rpc.ServiceException;12 13 import org.apache.axis.client.Call;14 import org.apache.axis.client.Service;15 16 17 18 19 public class Weather {20     public static void main(String[] args) throws ServiceException,21             RemoteException {22         String cityCode = "北京";23         String userId = "";24         // http://WebXml.com.cn/是wsdl中definitions根节点的targetNamespace属性25         // webservice路径26         // 这里后面加不加 "?wsdl" 效果都一样的27         String endpoint = "http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl";28         String[] res = null;29 30         // 查询城市天气的接口方法名31         String operationName = "getWeather";32         // 定义service对象33         Service service = new Service();34         // 创建一个call对象35         Call call = (Call) service.createCall();36         // 设置目标地址,即webservice路径37         call.setTargetEndpointAddress(endpoint);38         // 设置操作名称,即方法名称39         call.setOperationName(new QName("http://WebXml.com.cn/", operationName));40         // 设置方法参数41         call.addParameter(new QName("http://WebXml.com.cn/", "theCityCode"),42                 org.apache.axis.encoding.XMLType.XSD_STRING,43                 javax.xml.rpc.ParameterMode.IN);44         call.addParameter(new QName("http://WebXml.com.cn/", "theUserID"),45                 org.apache.axis.encoding.XMLType.XSD_STRING,46                 javax.xml.rpc.ParameterMode.IN);47         // 设置返回值类型48         // 对于返回是字符串数组的返回类型只有这两种可行49 50         // call.setReturnType(org.apache.axis.encoding.XMLType.SOAP_VECTOR);51         call.setReturnClass(java.lang.String[].class);52 53         call.setUseSOAPAction(true);54         call.setSOAPActionURI("http://WebXml.com.cn/" + "getWeather");55 56         res = (String[]) call.invoke(new Object[] { cityCode, userId });57 58         // 如果返回类型是org.apache.axis.encoding.XMLType.SOAP_VECTOR时用下面的转型接收59         // Vector v=(Vector) call.invoke(new Object[]{cityCode,userId});60         for (String str : res) {61             System.out.println(str);62         }63     }64 }

 

转载地址:http://bdxex.baihongyu.com/

你可能感兴趣的文章
远程调用服务(RPC)和消息(Message Queue)对比及其适用/不适用场合
查看>>
FreeBSD 的 Ports 系统
查看>>
有关web
查看>>
读Nginx官方文档笔记
查看>>
Spring中用了哪些设计模式?
查看>>
存储问题
查看>>
转: jquery中ajax回调函数使用this
查看>>
我的Java开发学习之旅------>Java 格式化类(java.util.Formatter)基本用法
查看>>
我的Android进阶之旅------>adbd cannot run as root in production builds 的解决方法
查看>>
Nginx http升级到https
查看>>
关于在RK3288上安装Opencv的方法
查看>>
7.Java集合-Arrays类实现原理及源码分析
查看>>
[POI2008]Triangles
查看>>
2016开发一个app需要多少钱?app开发需要哪些成本-app开发问题汇总-广州达到信息...
查看>>
程序找不到jvm的解决方法
查看>>
Java中Volatile的理解
查看>>
c++primer page 249 answer
查看>>
04单例模式Singleton
查看>>
SSE图像算法优化系列六:OpenCv关于灰度积分图的SSE代码学习和改进。
查看>>
找考场
查看>>