45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 电脑教程 > 阅读资讯:Web Service的例子的详细介绍

Web Service的例子的详细介绍

2016-08-31 08:01:30 来源:www.45fan.com 【

Web Service的例子的详细介绍

Web Service的例子的详细介绍Web服务例子(自己写的,好像在给自己做宣传,不过,暂时没别的例子可说只好将就):http://www26.brinkster.com/ipservices/ip.asmx,这个services就干一个事,你给它ip,它返回ip的所在地(北京、上海)或者空(它不知道)。返回的结构是这样的:
public class IPInfo
{
public string ip;
public string address = "";
}

只有一个函数可用:
[WebMethod]
public IPInfo GetIPInfo(string ip)
{
// ...
}

如果在.net环境里用,首先要声称它的代理DLL(不知道国内怎么翻,就是一个客户端的包裹程序),别的环境也差不用。包裹程序在.net里是自动生成的(可惜不知道怎么贴图说明),下面是自动生成的包裹程序的代码(我用的是web matrix):

//------------------------------------------------------------------------------
//
// This code was generated by a tool.
// Runtime Version: 1.1.4322.573
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
//

//------------------------------------------------------------------------------

//
// ASP.NET Web Matrix
//
using System.Diagnostics;
using System.Xml.Serialization;
using System;
using System.Web.Services.Protocols;
using System.ComponentModel;
using System.Web.Services;


///
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="IPSoap", Namespace="
http://www26.brinkster.com/ipservices/ip.asmx")]
public class IP : System.Web.Services.Protocols.SoapHttpClientProtocol {

///
public IP() {
this.Url = "
http://www26.brinkster.com/ipservices/ip.asmx";
}

///
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("
http://www26.brinkster.com/ipservices/ip.asmx/GetIPInfo", RequestNamespace="http://www26.brinkster.com/ipservices/ip.asmx", ResponseNamespace="http://www26.brinkster.com/ipservices/ip.asmx", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public IPInfo GetIPInfo(string ip) {
object[] results = this.Invoke("GetIPInfo", new object[] {
ip});
return ((IPInfo)(results[0]));
}

///
public System.IAsyncResult BeginGetIPInfo(string ip, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("GetIPInfo", new object[] {
ip}, callback, asyncState);
}

///
public IPInfo EndGetIPInfo(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((IPInfo)(results[0]));
}
}

///
[System.Xml.Serialization.XmlTypeAttribute(Namespace="
http://www26.brinkster.com/ipservices/ip.asmx")]
public class IPInfo {

///
public string ip;

///
public string address;
}

编译它,生成一个ip.dll,用起来是这样的,在你的代码里。

IP ip = new IP();
this.Address.Text = ip.GetIPInfo("192.168.100.1").address;

ip 就是那个代理类
Address 是用来显示地址的label,
192.168.100.1 要查的地址。

label里就可以显示客户的所在地了。应该是很简单了,和调一般类函数没什么区别。


两点:
1、代理类是必要的,他简化了客户端很多工作,甚至不需要知道调用的是web services,还是一般的类函数,他们的语法是一样的。
2、代理类里还自动生成了返回用到的类型(当然有限制),这个就更简化了使用。

 

本文地址:http://www.45fan.com/dnjc/70108.html
Tags: 一个 Web service
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部