【问题标题】:HTTP SOAP\GET\POSTHTTP SOAP\GET\POST
【发布时间】:2011-06-06 11:29:12
【问题描述】:

两天前,我在 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) 通过浏览器调用网络服务时如何发送Host Header信息?

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

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

感谢和问候' 米兰

【问题讨论】:

    标签: .net web-services


    【解决方案1】:

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

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

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

    它不优先。这就是 SOAP 服务通常的工作方式。如果你想使用 HTTP GET 和 HTTP POST,你应该检查 REST 服务。

    【讨论】:

    • 感谢您的回复。但在 IE6 中,我曾经在测试调用页面中获取示例 HTTP GET 请求\响应消息以及 HTTP POST 和 HTTP SOAP 请求\响应消息。为什么现在看不到了?
    • 按优先顺序我想问一下 SOAP 相对于 GET 和 POST 的优势是什么。\
    • @milan GET 和 POST 是 HTTP 传输协议的方法。 SOAP 是可以通过 HTTP 使用的通信协议。
    • @LadislavMrnka 谈论添加 2 个数字的服务(输入是 2 个数字)。这可以在 GET 中使用查询字符串和 SOAP 进行。我应该用什么?这对肥皂有什么好处吗?
    • @RoyiNamir:没有一般规则你应该使用什么方法。 SOAP 只是一种选择。
    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多