【问题标题】:SOAP request is not correct while sending to SAP PI发送到 SAP PI 时 SOAP 请求不正确
【发布时间】:2011-07-01 06:33:25
【问题描述】:

我正在使用 SAP PI Web 服务,但由于某种原因它无法正常工作。我在想是因为下面的 SOAP XML 不正确:

这正是 SAP PI 所期望的:

<?xml version="1.0" encoding="UTF-8"?>
<ns0:A_Request xmlns:ns0="http://domain.co.au/abc">
   <Root>
      <Element1>a</Element1>
      <Element1>a</Element1>
   </Recordset>
</ns0:A_Request>

这是我要发送的:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> 
<A_Request xmlns="http://domain.co.au/abc" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Root>
      <Element1>a</Element1>
      <Element1>a</Element1>
   </Recordset>
 </A_Request>

是否有任何方法(编程或配置)可以在客户端完成,以便按照服务器的预期格式化 XML 请求?

或者,它应该在 WSDL 中修复,客户端程序(我的程序)会自动生成所需的 xml?

谢谢大家。

【问题讨论】:

    标签: wcf soap sap sap-xi sap-pi


    【解决方案1】:

    您不应手动生成或格式化从客户端发送到服务器的 XML。如果服务器公开了一个有效的基于 SOAP 的服务,只需将客户端指向 WSDL,它将生成强类型类,您可以使用这些类来使用该服务。如果您在客户端上使用 .NET 3.0 或更高版本,建议您使用 svcutil.exe(或 VS 中的添加服务引用)来生成这些类。如果您使用的是旧版本,您可以使用wsdl.exe(或在 VS 中添加 Web 引用)。

    【讨论】:

    • 谢谢达林,我正在使用 .NET 4.0。你的意思是服务器(SAP PI)应该用适当的名称间距来修复他们的 WSDL。然后它会被客户端自动拾取并生成预期的 SOAP 消息?
    猜你喜欢
    • 2012-05-05
    • 2018-05-25
    • 1970-01-01
    • 2013-08-13
    • 1970-01-01
    • 2012-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多