无法回应guzzle xml响应GuzzleHttp \ Psr7 \ Response :: xml()

时间:2016-07-30 01:32:32

标签: xml laravel-5.2 response guzzle6 psr-7

使用laravel 5.2我尝试了下面的代码:

$xml =
"<BALANCE>
<Userid>myuserid</Userid>
<Loginkey>myloginkey</Loginkey>
<Transactionid>mytransactionid</Transactionid>
</BALANCE>";

$request = $client->request('POST', 'serveraddress:serverport/servicename/webservice.php',['Content-Type' => 'text/xml; charset=UTF8'],$xml);

var_dump($request->getBody());

我收到以下回复:

  

对象(GuzzleHttp \ Psr7 \ Stream)#171(7){[&#34; stream&#34;:&#34; GuzzleHttp \ Psr7 \ Stream&#34;:private] =&gt;类型(流)的资源(231)[&#34;大小&#34;:&#34; GuzzleHttp \ Psr7 \ Stream&#34;:private] =&gt; NULL [&#34;可搜索&#34;:&#34; GuzzleHttp \ Psr7 \ Stream&#34;:private] =&gt; bool(true)[&#34;可读&#34;:&#34; GuzzleHttp \ Psr7 \ Stream&#34;:private] =&gt; bool(true)[&#34;可写&#34;:&#34; GuzzleHttp \ Psr7 \ Stream&#34;:private] =&gt; bool(true)[&#34; uri&#34;:&#34; GuzzleHttp \ Psr7 \ Stream&#34;:private] =&gt; string(10)&#34; php:// temp&#34; [&#34; customMetadata&#34;:&#34; GuzzleHttp \ PSR7 \流&#34;:私人] =&GT; array(0){}}

根据提供商的说法,服务器上的请求和响应都可以。

如何使用xml响应?换句话说,我如何使用psr7对象或流,这样我才能显示有意义的信息?

答案我读到哪些对我没有帮助&#34;然而&#34; (要么不知道如何处理所提供的信息,要么信息不适用于我的情况);

  1. https://stackoverflow.com/a/32512634/3664960 - &gt;我使用6并且我不知道答案是否会使用旧版本
  2. https://stackoverflow.com/a/30549372/3664960使用第一个选项将string置于前面时,结果为
  3.   

    string(1)&#34; &#34;

    1. https://stackoverflow.com/a/37258804/3664960 - &gt; json_decode
    2.   

      NULL

      1. https://stackoverflow.com/a/31791933/3664960
      2.   

        string(1)&#34; &#34;

        5。https://stackoverflow.com/a/35632231/3664960

        在评论中查看我的评论

        我还能尝试什么?

        请注意:

        我可以阅读标题并正确显示它们!

1 个答案:

答案 0 :(得分:0)

我想你只是从服务器得到一个空的答案。因为你的要求是错误的。

试试这个

$request = $client->request(
    'POST',
    'serveraddress:serverport/servicename/webservice.php',
    [
        'headers' => ['Content-Type' => 'text/xml; charset=UTF8'],
        'body' => $xml
    ]
);

而不是原始请求。

注意选项。 Client::request()没有身体的第四个参数,它应作为选项传递。