【发布时间】:2015-10-25 08:58:47
【问题描述】:
我想使用 Guzzle 6 从远程 API 检索 xml 响应。这是我的代码:
$client = new Client([
'base_uri' => '<my-data-endpoint>',
]);
$response = $client->get('<URI>', [
'query' => [
'token' => '<my-token>',
],
'headers' => [
'Accept' => 'application/xml'
]
]);
$body = $response->getBody();
转储$body 将返回GuzzleHttp\Psr7\Stream 对象:
object(GuzzleHttp\Psr7\Stream)[453]
private 'stream' => resource(6, stream)
...
...
然后我可以调用 $body->read(1024) 从响应中读取 1024 个字节(将以 xml 读取)。
但是,我想从我的请求中检索整个 XML 响应,因为稍后我需要使用 SimpleXML 扩展来解析它。
我怎样才能最好地从 GuzzleHttp\Psr7\Stream 对象中检索 XML 响应,以便它可用于解析?
while 会循环吗?
while($body->read(1024)) {
...
}
非常感谢您的建议。
【问题讨论】: