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="
public class IP : System.Web.Services.Protocols.SoapHttpClientProtocol {
///
this.Url = "
}
///
public IPInfo GetIPInfo(string ip) {
object[] results = this.Invoke("GetIPInfo", new object[] {
ip});
return ((IPInfo)(results[0]));
}
///
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="
public class IPInfo {
///
///
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