调用WebServices 有两中情形:一种是调用项目内web服务,还有就是调用项目外web服务。
1、项目内wbe服务,就是在项目中直接添加->web服务->在服务文件代码页添加必要的逻辑代码,见下:
/// <summary>
/// WebService 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WebService : System.Web.Services.WebService {
public WebService () {
//如果使用设计的组件,请取消注释以下行
//InitializeComponent();
}
[WebMethod]
public string HelloWorld() {
return "Hello World";
}
}
调用:jquery简单方便
function btnGetContacts_onclick(btn, custid) {
$.get("CustInfo.asmx/方法名", (必要的参数){cust_id: custid, info_type: "contact_list"}, function (jsonstr) {
//添加回调操作
});
}
2、项目外web服务:
直接在项目 ->添加web引用->输入服务的地址->选取方法->然后在实际代码调用即可
http://book.51cto.com/art/200906/129728.htm 这个有抓图,可以看看。
其实很简单。我把服务看作一个可以在客户端js异步调用的一个服务端封装。
http://www.ruanyifeng.com/blog/2009/08/what_is_web_service.html 这个写的很简单、浅显。很好理解
看一个实例:
新建个服务:
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{
[WebMethod]
public void UpdateClientInfo(ClientInfoEntity entity)
{
return;
}
}
定义个实体
[Serializable]
public class ClientInfoEntity
{
public string ClientName
{
get;
set;
}
}
添加WEB 引用:
客户端调用:WebServiceProxy.WebService1 p = new WebServiceProxy.WebService1();
WebServiceProxy.ClientInfoEntity ey = new WebServiceProxy.ClientInfoEntity();
entity.ClientName = "value";
p.UpdateClientInfo(ey);
可以亲手试下。