Web service

Posted 小猫钓鱼吃鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web service相关的知识,希望对你有一定的参考价值。

http://www.webxml.com.cn/WebServices/WeatherWebService.asmx 获取天气的webservice地址;


支持下列操作。有关正式定义,请查看服务说明。

getSupportCity


查询本天气预报Web Services支持的国内外城市或地区信息
输入参数:byProvinceName = 指定的洲或国内的省份,若为ALL或空则表示返回全部城市;返回数据:一个一维字符串数组 String(),结构为:城市名称(城市代码)。

 


getSupportDataSet


获得本天气预报Web Services支持的洲、国内外省份和城市信息
输入参数:无;返回:DataSet 。DataSet.Tables(0) 为支持的洲和国内省份数据,DataSet.Tables(1) 为支持的国内外城市或地区数据。DataSet.Tables(0).Rows(i).Item("ID") 主键对应 DataSet.Tables(1).Rows(i).Item("ZoneID") 外键。
Tables(0):ID = ID主键,Zone = 支持的洲、省份;Tables(1):ID 主键,ZoneID = 对应Tables(0)ID的外键,Area = 城市或地区,AreaCode = 城市或地区代码。

 


getSupportProvince


获得本天气预报Web Services支持的洲、国内外省份和城市信息
输入参数:无; 返回数据:一个一维字符串数组 String(),内容为洲或国内省份的名称。

 


getWeatherbyCityName


根据城市或地区名称查询获得未来三天内天气情况、现在的天气实况、天气和生活指数
调用方法如下:输入参数:theCityName = 城市中文名称(国外城市可用英文)或城市代码(不输入默认为上海市),如:上海 或 58367,如有城市名称重复请使用城市代码查询(可通过 getSupportCity 或 getSupportDataSet 获得);返回数据: 一个一维数组 String(22),共有23个元素。
String(0) 到 String(4):省份,城市,城市代码,城市图片名称,最后更新时间。String(5) 到 String(11):当天的 气温,概况,风向和风力,天气趋势开始图片名称(以下称:图标一),天气趋势结束图片名称(以下称:图标二),现在的天气实况,天气和生活指数。String(12) 到 String(16):第二天的 气温,概况,风向和风力,图标一,图标二。String(17) 到 String(21):第三天的 气温,概况,风向和风力,图标一,图标二。String(22) 被查询的城市或地区的介绍
下载天气图标(包含大、中、小尺寸) 天气图例说明 调用此天气预报Web Services实例下载 (VB ASP.net 2.0)

 


getWeatherbyCityNamePro


根据城市或地区名称查询获得未来三天内天气情况、现在的天气实况、天气和生活指数(For商业用户)
调用方法同 getWeatherbyCityName,输入参数:theUserID = 商业用户ID

是一个基于可编程的web的应用程序,用于开发分布式的互操作的应用程序,也是一种web服务.webservice就是放在服务器上的函数,所有人都可以调用,然后返回信息。通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。

Soap:(Simple Object Access Protocol)简单对象存取协议。是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP。

WSDL:(Web Services Description Language) WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。

UDDI (Universal Description, Discovery, and Integration) 是一个主要针对Web服务供应商和使用者的新项目。在用户能够调用Web服务之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服务端来编制软件,UDDI是一种根据描述文档来引导系统查找相应服务的机制。UDDI利用SOAP消息机制(标准的XML/HTTP)来发布,编辑,浏览以及查找注册信息。它采用XML格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。

特点如下:

1.使用XML(标准通用标记语言)来作为数据交互的格式。

2.跨平台性,因为使用XML所以只要本地应用可以连接网络解析XML就可以实现数据交换,比如安卓、ios、WindowsPhone等都可以实现对Web service的数据交互。

3.基于HTTP协议,直接跨越防火墙,通用型强;

 

一、打开Visual Studio->文件->新建->网站

 

二、之后选择ASP.NET空网站,再点击“确定”

三、新建网站后你会看到解决方案管理器中看到一个web.config,待会我们可以通过配置这个文件来实现浏览器对WebService的远程调用。现在,右键解决方案中的项目名添加一个WebService项目。

四、之后,你可以在项目模版中找到Web服务(ASMX),添加

五、创建之后在APP_Code文件夹中创建一个WebService.cs文件

在网站根目录下会同时创建一个WebService.asmx文件

这两个文件中WebService.cs负责逻辑部分,WebService.asmx提供服务部分。将来引用WebService服务时将直接引用WebService.asmx文件来调用WebService服务,服务的执行部分就是WebService.cs文件

现在打开WebService.cs文件来编辑逻辑部分实行一个简单的《客户端调用web服务实现一个简单的加法运算,并返回以字符串给客户端运算结果》

 

复制代码
 1 /*
 2    Web.Services.cs文件
 3 */
 4 using System;
 5 using System.Collections.Generic;
 6 using System.Linq;
 7 using System.Web;
 8 using System.Web.Services;
 9 
10 /// <summary>
11 /// WebService 的摘要说明
12 /// </summary>
13 [WebService(Namespace = "http://tempuri.org/")]
14 [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
15 // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 
16 // [System.Web.Script.Services.ScriptService]
17 public class WebService : System.Web.Services.WebService {
18 
19     public WebService () {
20 
21         //如果使用设计的组件,请取消注释以下行 
22         //InitializeComponent(); 
23     }
24 
25     /// <summary>
26     /// 方法上头的[WebMethod]是声明一个web服务方法,如果你想写个方法能让客户端调用并返回结果就必须在方法上头标注[WebMethod]
27     /// 如果是只负责逻辑运算或私有方法,并不打算给客户端结果,只给类方法内部调用就无需声明[WebMethod]
28     /// </summary>
29     /// <param name="a"></param>
30     /// <param name="b"></param>
31     /// <returns>将运算结果转换成字符串返回</returns>
32     [WebMethod]
33     public string HelloWorld(int a, int b) {
34         int result = a + b;
35         return result.ToString();
36     }    
37 }
复制代码

 上面的代码写了一个基本的方法供远程调用,将cs文件保存后,一个简单的web服务就创建了!

下面我们启动这个项目,用浏览器查看微软为我们定义测试的调用页面:

在这里我们可以看到我们写的Hello方法可以调用了,我们单击进入这个方法进入调用调试页面:

输入参数,我们写的是一个简单的加法运算,参数便是我们写的HelloWorld方法的参数a和b,我们输入两个整数点击调用,出现如下结果:

下面是web服务返回的结果,其中133就是HelloWorld参数a+b返回的结果:

1 <?xml version="1.0" encoding="UTF-8"?>
2 <string xmlns="http://tempuri.org/">133</string>

 到这里,以后我们想要调用一个web服务就可以通过以上方式把客户端从服务器获取数据,访问:"主机名/web服务名.asmx"就可以调用了。

得到的数据是个XML,所以客户端得到数据后需要客户端解析XML文件。

注意:以上创建在浏览器调用的web服务仅供本地计算机调试使用,需要配置web.config(之前提到过)才能实现远程调用调试

如果不配置,在远程调用会出现:测试窗体只能用于来自本地计算机的请求解决 的问题。

如需远程调用可以参考一下方法:

在网站的解决方案的下方找到web.config

打开后添加如下配置即可:

 

 配置之后,就可以在远程通过浏览器来调用webservice.asmx服务了,开发测试之后,为了安全,一定把该配置去掉!

<system.web>
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
</system.web>

以上是关于Web service的主要内容,如果未能解决你的问题,请参考以下文章

JAVA WEB代码片段

web代码片段

代码片段 - Golang 实现简单的 Web 服务器

高效Web开发的10个jQuery代码片段

高效Web开发的10个jQuery代码片段

web前端开发JQuery常用实例代码片段(50个)