ASP.NET Web Service协议相关

=================================================================================
How to enable an ASP.NET WebService to listen to HTTP POST calls
=================================================================================
Imagine you developed an ASP.NET WebService, but the client that needs to use it wants to call it using HTTP POST instead of SOAP.
As default, when accessed from the localhost, all webservices listen both to SOAP and HTTP POST calls, but if accessed from another host they

listen only to SOAP.
My friend Google found a page on the MSDN site that explains how to change the protocols accepted by the ASP.NET runtime to listen to web

services calls.
As all configuration settings it can be changed both at machine level (machine.config) and per single application inside the web.config.
The configuration section is named <webServices> and is inside the <system.web> section.
The default configuration (the one that is inside a newly installed machine.config) is the following:
<system.web>
    ...
    <webServices>
        <protocols>
              <add name="HttpSoap"/>
              <!-- <add name="HttpPost"/> -->
              <!-- <add name="HttpGet"/>  -->
              <add name="Documentation"/>
              <add name="HttpPostLocalhost"/>
        </protocols>
    </webServices>
    ...
</system.web

Option names are quite self explaining. So, in order to enable allow HTTP POST calls, all you need is to uncomment the HttpPost in the

machine.config or add <add name="HttpPost"/> in your application web.config
posted on Friday, December 22, 2006 12:14 AM

 

=================================================================================
HTTP-GET, HTTP-POST and SOAP的比较
=================================================================================
在ASP.NET 中,XML Web Service支持三种协议来与用户交流数据。这三种协议分别是:

1. SOAP:Simple Object Access Protocol

2.  HTTP-GET

3.   HTTP-POST

1.首先我们先来理解一下这三者的大概定义。

在这三种协议中,SOAP是XML Web Service最常用到的连接协议。与HTTP相比,SOAP显的更为复杂,但却拥有更强的接受能力。SOAP是一种以XML为基础的协议,

它提供一种将数据打包(Packaging)和 编码(Encoding)的方法,以用于网络的数据传输。任意一个用户都可以使用SOAP协议与任何一个XML Web Service进行

通信,甚至于说这个XML Web Service不是建立在.NET 平台上的,比如说Java的,我们都可以利用SOAP来进行数据传输。因此可见,SOAP也是Language

Independent.(语言独立性)

HTTP(Hypertext Transfer Protocol) 已经是众所周知的协议了,它是XML Web Service数据传输的标准,这包括了在使用SOAP传输数据的时候。HTTP将SOAP 消

息压缩,然后以它的形式进行网络传输。然而当我们谈及在XML Web Service下使用HTTP-GET和HTTP-POST的时候,我们实事上在谈有关单独使用HTTP调用XML Web

Service中的方法的能力,这里我说的单独使用,指的是不使用SOAP。

在HTTP中,GET 和 POST并不是一种协议,它们是可以用来与Web Service交互的几种方法中的其中二种。然而,这二种方法的传送参数和数据的能力使它们变成

了一种简单的,非常适合用来调用XML Web Service的工具。


2.HTTP-GET 和 HTTP-POST 的比较

这二者最大的区别在于数据是如何与要求的消息捆绑在一起的。

HTTP-GET的处理特征如下:

。将数据添加到URL

。利用一个问号(”?”)代表URL地址的结尾与数据的开端。

。每一个数据的元素以 名称/值 (name/value) 的形式出现。

。利用一个分号(“;”)来区分多个数据元素。

HTTP-POST的处理特征如下:

。将数据包括在HTTP主体中。

。同样的,数据的元素以 名称/值 (name/value) 的形式出现。

。但是每一个数据元素分别占用主体的一行。

从这二者不同的处理特征,可以看出它们的不同之处,而大家也可以利用IE打开一个Web Service文件,在页面中,IE会显示出二种的数据的不同之处。

3.HTTP和SOAP的比较

HTTP-GET 和 HTTP-POST 提供了一个简单的与XML Web Service交互的工具,与SOAP相比,它有以下几点好处:

。 能够非常容易的创建正确的HTTP-GET 和 HTTP-POST消息,当面向的客户是不能使用SOAP的客户时,HTTP-GET 和 HTTP-POST是最好的选择。

。响应HTTP-GET 和 HTTP-POST的消息,并不需要复杂的XML处理。响应之中包括了XML,但它有一个简单的框架并能够轻易的利用一般的技术处理响应。这些特点

使HTTP-GET 和 HTTP-POST对于不支持XML的平台来说,变的异常的有用。

。HTTP-GET 和 HTTP-POST消息比起SOAP消息来说,更为简单。这有利于提高整体的性能。

然而,有得必有失,有好必有坏,它们也存在不可忽略的缺点:

。不能够利用HTML调用XML Web Service中的以复杂数据类型为参数的方法。

。你可以调用XML Web Service中返回值为复杂数据类型的方法,但是响应将仅包括复杂数据类型中各个区域中的名字/值,并且返回的值并没有结构可言。你必

须手动的将数据解压缩到WSDL文件。

。在HTTP中,你不能使用reference进行参数的传输。

。使用HTTP与XML Web Service进行交流,不是一个agreed-to工业标准技术。虽然HTTP会在ASP.NET Web Application中与XML Web Service正常工作,但不保证

它在其它的环境下正常工作。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值