发送guzzle`get`请求后无法打印响应数据

时间:2015-08-05 11:25:19

标签: php phpunit guzzle

在使用get params提交此网址后,我能够使用POSTMAN获取我想要的一些数据: http://10.0.0.0/adserver/src/public?url=http://dummy.com

但当我尝试向guzzle发送相同的请求时:

public function testGetAds_test()
{
    $client = new Client(['base_uri' => $this->config['base_url']]);
    $response = $client->get('getAds', ['query' => ['url' => 'http://dummy.com']]);
    $data = json_decode($response->getBody());

    var_dump($response->getBody());
}

我得到200但是转储打印了我使用POSTMAN得到的数据:

.object(GuzzleHttp\Psr7\Stream)#41 (7) {
  ["stream":"GuzzleHttp\Psr7\Stream":private]=>
  resource(226) of type (stream)
  ["size":"GuzzleHttp\Psr7\Stream":private]=>
  NULL
  ["seekable":"GuzzleHttp\Psr7\Stream":private]=>
  bool(true)
  ["readable":"GuzzleHttp\Psr7\Stream":private]=>
  bool(true)
  ["writable":"GuzzleHttp\Psr7\Stream":private]=>
  bool(true)
  ["uri":"GuzzleHttp\Psr7\Stream":private]=>
  string(10) "php://temp"
  ["customMetadata":"GuzzleHttp\Psr7\Stream":private]=>
  array(0) {
  }
}

任何想法我在这里失踪了什么? THX

2 个答案:

答案 0 :(得分:1)

如果您处理Json响应,您可以按照here in the doc描述直接调用响应对象上的json()方法:

所以你可以使用:

$data = $response->json();
  

Guzzle内部使用PHP的json_decode()函数进行解析   响应。如果Guzzle无法解析JSON响应主体,那么a   抛出GuzzleHttp \ Exception \ ParseException。

希望这个帮助

答案 1 :(得分:0)

var_dump()您需要使用

$response->getBody()->getContents()