我在2天前在VS 2008中创建了我的第一个Web服务,当我遇到以下有关Web服务的问题时,我正在考虑使用它:
1)我的Web服务测试调用页面(作为.NET框架的一部分的封闭页面)不显示任何示例HTTP GET请求\响应消息.它显示的唯一消息是HTTP POST,SOAP 1.1和SOAP 1.2.我是否应该假设Web服务是如何不鼓励使用HTTP GET协议来调用它们的呢?
2)为了通过浏览器进行HTTP-POST调用,我创建了一个示例html页面.我也可以这样做以进行示例HTTP-SOAP调用吗?如果是,那么响应是否为SOAP格式?任何人都可以发送给我这样一个HTML页面.
3)如何通过浏览器调用Web服务时发送Host Header信息?
4)当我们使用POST方法(method ='post')调用Web服务时,为什么称它为'HTTP-SOAP调用'?
5)为什么HTTP-SOAP应该优先于HTTP-GET和HTTP-POST?
谢谢并问候'米兰
标准SOAP服务仅使用HTTP POST,因为它们需要复杂的SOAP请求(XML),这些请求不能包含在查询字符串中.
当您想从Web页面调用SOAP服务时,您的页面必须构建有效的SOAP请求.因此,SOAP调用通常是从服务器端的自动生成的服务客户端创建的.
我们可以将其称为HTTP-SOAP,因为它是由HTTP协议使用POST方法传输的SOAP请求.
它没有优先权.这是SOAP服务通常的工作方式.如果要使用HTTP GET和HTTP POST,则应检查REST服务.
首先,你可能犯了一个错误。您是否创建了带有 .ASMX 扩展名的服务?
这是一个遗留的“ASMX”Web 服务,除非您别无选择,否则不应该用于新的开发。WCF 应该用于所有新的开发。
其次,GET 不能用于将复杂类型发送到服务,因为它将参数放入查询字符串中。POST,实际上没什么用,除了测试页面(它也不能发送复杂类型)。
对于这样的服务来说,唯一真正重要的是 SOAP。您应该创建某种客户端应用程序来测试它,也许是一组单元测试。
| 归档时间: |
|
| 查看次数: |
20176 次 |
| 最近记录: |