Laravel + GuzzleHTTP没有回复数据?

时间:2017-01-20 12:19:22

标签: json laravel post guzzle

我正在使用guzzle来查询我的API。

$client = new Client();
        $response = $client->post('xxxxxx',
            array(
                'headers' => array('Content-Type'=>'application/json'),
                'json'=> array(
                    "type" => 0,
                    [...]
                )
            )
        );

        //$response = json_decode($response);

        dd($response->getBody());

这应该输出这样的东西:

{
  "returnCode": 0,
  "success": true
}

但我得到别的东西。

Stream {#230 ▼
  -stream: stream resource @12 ▼
    wrapper_type: "PHP"
    stream_type: "TEMP"
    mode: "w+b"
    unread_bytes: 0
    seekable: true
    uri: "php://temp"
    options: []
  }
  -size: null
  -seekable: true
  -readable: true
  -writable: true
  -uri: "php://temp"
  -customMetadata: []
}

任何人都可以帮助我或告诉我我做错了什么?我想发送原始帖子数据,然后获得原始帖子数据然后我想保存(例如在数据库中)。

2 个答案:

答案 0 :(得分:2)

getBody()

返回一个流接口。您想获取该流的内容,所以:

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

是您要搜索的内容

注意

根据文档,你也可以将streaminterface转换为字符串,但我的结果各不相同。 getContents()始终做它需要做的事情,所以这就是我的解决方案。

答案 1 :(得分:0)

最好将响应流回客户端,而不是将内存转换为字符串:Laravel 5.2 stream download