从 Promise 或 Response Guzzle 6.0 获取请求信息

Get Request Information from Promise Or Response Guzzle 6.0

我想获取有关我已发送的请求的信息,例如 url、发送的正文等。我正在使用使用承诺的异步功能(下面的示例)

$client = new \GuzzleHttp\Client();

return  new \GuzzleHttp\Psr7\Request\Request('POST', $this->getUrl(), $this->getHeaders(), $this->getBody());

有没有办法从承诺或响应中获取请求信息?

我问这个是因为我需要稍后在数据库中存储一些关于请求的信息,这在我发送请求之前是做不到的。

到目前为止我尝试的是

谢谢

当您初始化一个新的 Request 时,您必须发送它。默认情况下不发送。当 Client 在其上调用 send 方法时发送请求。请求完成后,您可以访问有关响应的所有信息:

use GuzzleHttp\Psr7\Request;
use GuzzleHttp\Client;

$client = new Client();
$request = new Request('GET', 'https://www.google.com');
$response = $client->send($request);

$response->getHeaders(); // array of all retreived headers
$response->getStatusCode(); // http status code 
$response->getReasonPhrase(); // http status phrase

并且您初始化了一个错误的 Request 对象,Guzzle 未附带 \GuzzleHttp\Psr7\Request\Request\GuzzleHttp\Psr7\Request

现在有了正确的发送请求方式,获取请求信息就这么简单:

print_r($request->getHeaders()); // array of all sent headers
echo $request->getUri(); // requested URI