1

使用 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());

我得到以下回复:

object(GuzzleHttp\Psr7\Stream)#171 (7) { ["stream":"GuzzleHttp\Psr7\Stream":private]=> 资源(231) 类型 (stream) ["size":"GuzzleHttp\Psr7\ Stream":private]=> NULL ["seekable":"GuzzleHttp\Psr7\Stream":private]=> bool(true) ["可读":"GuzzleHttp\Psr7\Stream":private]=> bool(true) ["可写":"GuzzleHttp\Psr7\Stream":private]=> bool(true) ["uri":"GuzzleHttp\Psr7\Stream":private]=> string(10) "php://temp" [ "customMetadata":"GuzzleHttp\Psr7\Stream":private]=> array(0) { } }

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

如何使用 xml 响应?换句话说,如何使用 psr7 对象或流,以便显示有意义的信息?

我读到的答案“还”对我没有帮助(要么不知道如何处理所提供的信息,要么该信息不适用于我的情况);

  1. https://stackoverflow.com/a/32512634/3664960 -> 我正在使用 6,但我不知道答案是否建议使用旧版本
  2. https://stackoverflow.com/a/30549372/3664960使用第一个选项放在string前面时,结果是

字符串(1)“”

  1. https://stackoverflow.com/a/372 ​​58804/3664960 -> json_decode

无效的

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

字符串(1)“”

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

在评论中查看我的评论


我还能尝试什么?


笔记:

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

4

1 回答 1

0

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

尝试这个

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

而不是原来的请求。

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

于 2016-08-01T13:46:55.260 回答