0

我们正在从 C# (VS.Net 2003) 应用程序连接一个 web 服务 (java)。运行在 HTTP 1.0 协议上的 Web 服务。另一方面,VS.Net 2003 试图使用 HTTP 1.1 协议。因此对象将变为空值。

例如,我们得到的字符串 [5] 对象是正确的,但数组的项目是空值。

我们必须将 HTTP 协议升级到 1.0。2005年和2008年没问题。

我们如何在 VS 2003 框架 1.1 中做到这一点?

4

1 回答 1

0

您能否举例说明 1.0 Web 服务调用的预期发布内容?如果是这样,请查看并确保所有内容都正确传递到肥皂信封中,以及添加到标题中的任何设置。我刚刚更新了一个可用于使用 WebRequest 进行 SOAP 调用的应用程序,但每次尝试调用 1.1 Web 服务时它都会失败。有多个问题。

1) 命名空间

  - 1.2 = "soap12" 
  - 1.1 = "soap" 

  *Plus, the URL is different for each namespace.

2) 内容类型

  - 1.2 = "application/soap+xml; charset=utf-8"
  - 1.1 = "text/xml; charset=utf-8" 

3) 在调用 1.1 Web 服务时,我必须在标头中设置 SOAPAction。没有它,不断从服务器收到 500 错误。

我通过查看由 Web 服务生成的自动生成的测试页面(其中包含 SOAP 1.1 和 1.2 调用的示例)发现了这一点。然后,我将它与我们构建的 SOAP 信封/放入标题进行了比较。一旦我们生成的内容与示例匹配,一切都会按预期工作。

由于我不知道您是如何调用 Java Web 服务的,因此上述信息可能适用也可能不适用,但至少您有一些事情要检查。

如果您可以发布有关如何在 VS2003 中调用 Web 服务的更具体信息(又名:代码示例),这将有助于获得更明确的答案。

于 2009-06-24T12:29:17.653 回答