代码之家  ›  专栏  ›  技术社区  ›  Vnuk

在SOAP调用之前获取SOAP XML?

  •  5
  • Vnuk  · 技术社区  · 15 年前

    在将SOAP客户端生成的XML发送到webservice之前,是否可以获取该XML?

    Server was unable to read request. 
    ---> There is an error in XML document (2, 408). 
    ---> Input string was not in a correct format.
    

    这通常包括启动tcpmon或某个其他tcp观察器实用程序,捕获webservice调用,将xml复制并粘贴到文本编辑器,然后转到第408列以查看问题所在。

    之前 发送它。

    1 回复  |  直到 15 年前
        1
  •  13
  •   benjy    15 年前

    要做到这一点非常非常困难(几乎不可能)。更简单的是使用 SoapClient 类的内置调试功能,以在发送请求后输出请求。您可以这样做:

    $client = new SoapClient($wsdl, array('trace' => true));
    

    然后做任何必要的处理来准备进行SOAP调用并使其成功。一旦发出请求,以下内容将为您提供您刚刚发送的请求:

    echo("<pre>"); //to format it legibly on your screen
    var_dump($client->__getLastRequestHeaders()); //the headers of your last request
    var_dump($client->__getLastRequest()); //your last request
    

    而且,如果您还想看到响应,那么以下操作应该可以:

    var_dump($client->__getLastResponseHeaders()); //response headers
    var_dump($client->__getLastResponse()); //the response