webservice接口实例,Webservice接口
如何调用别人提供的webservice接口
在项目中选择【控制台应用程序】,点击项目右键,选择添加-服务引用。在地址栏中输入WebServie链接地址后回车,点击确定后在代码中就可以看到添加的服务应用了,详细步骤:
1、首先打开VS2013,选择文件-新建-项目。
2、在项目中选择【控制台应用程序】,将项目名称重新命名为【WebServiceTest】。
3、点击项目右键,选择添加-服务引用。
4、在地址栏中输入WebServie链接地址后回车,然后重新命名服务名称为【ServiceGetWeather】,点击确定后在代码中就可以看到添加的服务应用了。
5、然后在代码中添加如下代码,调用webservice,获取接口返回的数据,呈现出来。
6、这是运行的结果,可以看出接口返回了一个xml格式的数据。
如何调用webservice接口中的方法
webservice主要是一些站点为我们写好了的方法,供我们调用,当然我们也可以自己去编写自己的webservice,本文主要是通过一个小的实例,去如何调用webservice。下面先给出几个常用的webservice的调用地址。
下面我们就拿一个简单的天气预报接口。先把天气预报接口的地址输入地址栏:会出现一些带有链接的方法名和参数说明之类的。看完之后,然后进链接可以看到测试,可以先把我们想测试的参数写进去,点击调用,会出现一个xml文件,这些就是得到的结果,依情况而定我们出把结果处理成我们想要的就可以了。
下面说一下怎么在项目中调用:新建一个web项目,然后点击添加引用服务如图,然后点击确定。
这样就会发现在webconfig文件里面多了一下节点,而且项目类中的Service References文件件多了一个绿色的东西。可以点击看看他有哪些方法,应该是和我们在浏览器输入链接的方法是一致的,剩余就是怎么调用了。下面给出具体的代码:本代码值在webForm中先添加Lable、TextBox、Button以及Literal各一个。然后点击按钮。
运行程序,输入查看的城市:点击按钮如图所示:
如何使用C#创建WebService
C#学习到一定程度会涉及到C#创建WebService的一些高阶知识,本文试图对此做一个简单的介绍。
假设A是客户端,B是webservice服务端,用户通过http协议向服务器发送soap请求,webservice返回客户端Xml格式的数据。
现在我们看一看创建一个C#创建WebService的大致过程:
服务端的webservice是必须要建的。中间的soap,Xml我们不用去关心,在客户端这边,比较重要的是如何从webservice取得对象?答案是用的是proxy对象。客户端由代理对象(proxy)负责与webservice的通信。所以在客户端使用webservice,完全和使用一个本地对象是一样的。
我们现在以一个简单的C#创建WebService实例来说明。
打开vs.Net,新建工程(asp.Net ?web服务),在位置中键入http。//localhost/webserver,其中webserver就是工程的名字。确定后,出现一个Service1.asmx.cx,双击,出现代码窗口,
using ?System; ? using ?System.Collections; ? using ?System.ComponentModel; ? using ?System.Data; ? using ?System.Diagnostics; ? using ?System.Web; ? using ?System.Web.Services; ? namespace ?webserver ? { ? /// ? ? /// ?Service1 ?的摘要说明。 ? /// ? ? (1) ? public ?class ?Service1 ?: ? ?System.Web.Services.WebService ? { ? public ?Service1() ? { ? //CODEGEN:该调用是 ?ASP.Net ?Web ? ?服务设计器所必需的 ? InitializeComponent(); ? } ? #region ?Component ?Designer ?generated ?code ? //Web ?服务设计器所必需的 ? private ?IContainer ?components ?= ?null; ? /// ? ? /// ?设计器支持所需的方法 ?- ? ?不要使用代码编辑器修改 ? /// ?此方法的内容。 ? /// ? ? private ?void ?InitializeComponent() ? { ? } ? /// ? ? /// ?清理所有正在使用的资源。 ? /// ? ? protected ?override ?void ?Dispose ?( ?bool ?disposing ?) ? { ? if(disposing ? ?components ?!= ?null) ? { ? components.Dispose(); ? } ? base.Dispose(disposing); ? } ? #endregion ? // ?WEB ?服务示例 ? // ?HelloWorld() ?示例服务返回字符串 ?Hello ?World ? // ?若要生成,请取消注释下列行,然后保存并生成项目 ? // ?若要测试此 ?Web ?服务,请按 ?F5 ?键 ? // [WebMethod] ? // public ?string ?HelloWorld() ? // { ? // return ?"Hello ?World"; ? // } ? } ? } ? 下面在(1)处加入
[WebService(Namespace="http。//localhost/webserver/")]
这是因为soap是基于http协议上的,客户端无法知道webservice位于那个服务器上。在实际应用中,比如http。//www。ourfly。com上放置这个webservice,则Namespace改为http。//www。ourfly。com/webserver.
下面我们给这个webservice添加一个方法。
// [WebMethod] ? // public ?string ?HelloWorld() ? // { ? // return ?"Hello ?World"; ? // } ? 微软帮我们写好了一个,接着添加一个方法。 ?方法名称叫show. ? [WebMethod] ? public ?string ?show(string ?yourname) ? { ? return ?“http。//www。ourfly。com”+”欢迎”+yourname; ? } ? 现在,就可以运行了,按F5,点击show,输入你的名字, ?然后点击invote 看到了吧。 ? 〈 ?Xml ?version="1.0" ?encoding="utf-8" ??〉 ? ? 〈 string ?Xmlns="http。//tempuri。org/"〉 ?http。//www。ourfly。com欢迎yyg〈 /string〉 ?成功了。打开bin目录,Vs.Net已经将proxy做好了.webserver.dll.
现在我们在不同的环境下测试:
1.打开vs.Net,新建”windows应用程序”工程,命名为Client,增加按钮,文本框。
现在要用到代理了,右键单击右边的reference(引用),选择”添加引用”,选择浏览,找到webserver目录下的bin目录下的webserver.dll
再加入一个system.web.webservices的引用,在列表中有。
在form1.cs里,加入
using System.Web.Services;
using webserver;
然后在
private ?System.Windows.Forms.Button ?button1;
private ?System.Windows.Forms.TextBox ?textBox1;
后面,插入
private ?webserver.service1 ?Client
建立一个service1的实例。双击按钮,代码如下:
private ?void ?button1_Click ?(object ?sender, ?System.EventArgs ?e) ? { ? Client ?=new ?Service1(); ? string ?name; ? name=Client.show("龙卷风.Net"); ? textBox1.Text=name; ? } ? 按F5,运行工程,点击按钮,文本框中显示 http。//www。ourfly。com欢迎龙卷风.Net
2. Asp.Net ?web窗口的测试
方法与上面的一模一样,添加引用,建立service1的实例 在此不在细说。
3.在VB中测试
这个就要相对来说复杂一些 ,首先在VB中建立一个”标准EXE”的工程。添加引用:Microsoft ?Soap ?Type ?library。
注意:如果没有安装Microsoft ?Soap ?Toolkit,是没有这个类型库的。