Web Service

Web Service是一个平台独立的,低耦合的,自包含的、自描述和模块化的web的应用程序。Web服务是建立可互操作的分布式应用程序平台,它是一套标准,定义了其他程序在Web上实现互操作。Web服务支持标准协议HTTP、SOAP和AML。
1.创建Web Service
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
2.Web服务文件
Web服务是扩展名为.asmx的文件。
2.1 XML命名空间
Web服务在成为公共前,应更改默认的XML命名空间,以便客户端能将它与网络上的其他服务分开。http://tempuri.org/ 可用于处于开发阶段的 XML Web services,而已发布的 XML Web services 应使用更为永久的命名空间。例如,可以使用公司的 Internet 域名作为命名空间的一部分。尽管有许多 XML Web services 命名空间看似 URL,但它们不必指向 Web 上的实际资源。(XML Web services 命名空间为 URI。)使用Namespace属性更改XML命名空间。
[WebService(Namespace = “http://tempuri.org/”)]
2.2Web Service Binding特性
按Web服务描述语言(WSDL)的定义,绑定类似于一个接口,原因是它定义一组具体的操作。每个Web services方法都是特定绑定中的一项操作。Web services方法是Web services的默认绑定的成员,或者是在应用于实现Web services的类的WebServiceBinding特性中指定绑定的成员。Web服务可以通过将多个WebServiceBinding特性应用于Web services来实现多个绑定。
2.3Web Method特性
Web services类包含一个或多个可在Web服务中公开的公共方法。这些Web services方法以WebMethod特性开头。为使用ASP.NET创建的Web服务中的某个方法添加此WebMethod特性后,就可以从远程Web客户端调用该方法。

[WebMethod]
public string HelloWorld()
{
   return "Hello World";
}

WebMethod特性包括一些属性,这些属性可以用于设置特定Web方法的行为,语法如下:

[WebMethod(PropertyName=value)]

(1)BufferResponse属性
BufferResponse属性启用对Web services方法响应的缓冲。当设置为 true时,ASP.NET在将响应从服务器向客户端发送之前,对整个响应进行缓冲。当设置为false时,ASP.NET以16KB的块区缓冲响应。默认值为true。
(2)CacheDuration属性
CacheDuration属性启用对Web services方法结果的缓存。ASP.NET将缓存每个唯一参数集的结果。该属性的值指定ASP.NET应该对结果进行多少秒的缓存处理。值为0时,则禁用对结果进行缓存。默认值为0。
(3) Description属性
Description属性提供Web services方法的说明字符串。当在浏览器上测试Web服务时,该说明将显示在Web服务帮助页上。默认值为空字符串。
(4) EnableSession属性
EnableSession属性设置为true,启用Web services方法的会话状态。一旦启用,Web services就可以从HttpContext.Current.Session中直接访问会话状态集合,如果它是从WebService基类继承的,则可以使用WebService.Session属性来访问会话状态集合。默认值为 false。
(5) MessageName属性
Web服务中禁止使用方法重载。但是,可以通过使用MessageName属性消除由多个相同名称的方法造成的无法识别问题。
MessageName属性使Web服务能够唯一确定使用别名的重载方法。默认值是方法名称。当指定MessageName时,结果SOAP消息将反映该名称,而不是实际的方法名称。
3.一般处理程序
一般处理程序(HttpHandler)是·NET众多web组件的一种,ashx是其扩展名。一个httpHandler接受并处理一个http请求,需要实现IHttpHandler接口,这个接口有一个IsReusable成员,一个待实现的方法ProcessRequest(HttpContextctx) 。程序在processRequest方法中处理接受到的Http请求。成员IsReusable指定此IhttpHandler的实例是否可以被用来处理多个请求。
.ashx程序适合产生供浏览器处理的、不需要回发处理的数据格式,例如用于生成动态图片、动态文本等内容。

public void ProcessRequest(HttpContext context)
{
    //获取或设置实体主体的字符集。
    context.Request.ContentEncoding = Encoding.GetEncoding("UTF-8"); 
    //当前 HTTP 请求的 System.Web.HttpRequest。          
    funcStr = context.Request["func"];
    paramsStr = context.Request["params"];
    //获取或设置输出流的 HTTP MIME 类型。
    context.Response.ContentType = "application/json; charset=UTF-8";
    //要写入 HTTP 输出流的字符串。
    context.Response.Write(json);
}
public bool IsReusable
{
    get
    {
        return false;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值