2011-01-10 157 views
5

我创造了我的第一个Web服务3天前在VS 2008和在想消费它,当我遇到有关Web服务的以下几个问题来了:HTTP的SOAP GET POST

1)我的Web服务测试调用页面(作为.NET框架一部分的罐头页面)不显示任何示例HTTP GET请求\响应消息。它显示的唯一消息是HTTP POST,SOAP 1.1和SOAP 1.2。假设我的网络服务是一些如何不鼓励使用HTTP GET协议来调用它们?

2)要通过浏览器进行HTTP-POST调用,我创建了一个示例html页面。我是否也可以做同样的示例HTTP-SOAP调用?如果是,那么响应是否为SOAP格式?任何人都可以给我这样一个HTML页面。

3)在通过浏览器拨打网络服务时,我们如何发送主机头信息?

4)当我们使用POST方法调用Web服务时(为什么我们称之为'HTTP-SOAP调用'(method ='post')?

5)为什么HTTP-SOAP应该优先于HTTP-GET和HTTP-POST?

感谢和问候 米兰

回答

0

首先,你可能已经犯了一个错误。您是否创建了带.ASMX扩展名的服务?

这是一个传统的“ASMX”Web服务,除非你别无选择,否则不应该用于新开发。 WCF应该用于所有新的开发。

其次,GET不能用于将复杂类型发送到服务,因为它将参数放入查询字符串中。 POST,实际上几乎没有用处,除了测试页面(它也不能发送复杂类型)。

对于这样的服务真正重要的唯一事情就是SOAP。你应该创建一个客户端应用程序来测试它,也许是一组单元测试。

7

标准SOAP服务仅使用HTTP POST,因为它们需要复杂的SOAP请求(XML),它不能包含在查询字符串中。

当您想从网页调用您的SOAP服务时,您的页面必须构建有效的SOAP请求。因此,SOAP调用通常由服务器端的自动生成的服务客户端创建。

我们可以称之为HTTP-SOAP,因为它是通过HTTP协议使用POST方法传输的SOAP请求。

它没有优先权。 SOAP服务通常是如何工作的。如果你想使用HTTP GET和HTTP POST,你应该检查REST服务。

+0

感谢您的回复。但在IE6中,我曾在测试调用页面中获取示例HTTP GET请求\响应消息以及HTTP POST和HTTP SOAP请求\响应消息。为什么现在不可见? – 2011-01-12 11:32:26