耗时getContents()-> getBody()-第二次调用返回empy字符串

时间:2019-03-12 11:25:59

标签: php guzzle

我正在通过Guzzle调用API。

public function request(string $method, string $uri, array $data = [], array $headers = [])
{
    $response = $this->getClient()->$method($uri, [
        'headers' => $headers,
        'query' => $data,
    ]);
    echo "1";
    var_dump($response->getBody()->getContents());

    $this->checkError($response);

    echo "2";
    var_dump($response->getBody()->getContents());
    return $response;
}

public function checkError($response)
{
    $json = json_decode($response->getBody()->getContents());
    echo "3";
    var_dump($json);
}

我的json测试(从“ 1”输出)是

{
  "args":{
  },
  "headers":{
    "Authorization":"Basic dXNlcm5hbWU6cGFzc3dvcmQ=",
    "Host":"httpbin.org",
    "User-Agent":"GuzzleHttp/6.3.3 curl/7.59.0 PHP/7.2.4"
  },
  "origin":"1.2.3.4, 1.2.3.4",
  "url":"https://httpbin.org/get"
}

但是,在代码“ 2”中,我有一个空字符串,在代码“ 3”中(从“ checkError”方法输出),我为null。

如果我注释掉checkError方法,我希望片段2中有另一个相同的json,但是我有一个空字符串。为什么会有这种行为?

0 个答案:

没有答案