Получить информацию запроса от Promise или Response Guzzle 6.0

Я хочу получить информацию о отправленном мною запросе, например, URL-адрес, отправленное тело и т. Д. Я использую функцию Async, которая использует обещания (пример ниже)

$client = new \GuzzleHttp\Client();

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

Есть ли способ получить информацию о запросе из обещания или из ответа?

Причина, по которой я спрашиваю об этом, заключается в том, что мне нужно позже сохранить некоторую информацию о запросе в базе данных, что невозможно сделать до того, как я отправлю запрос.

  • Получение информации из обещания следующими способами
    • $promise->getRequest()
    • $pomise->Request
    • $promise->request
    • $promise->getHandlers()

Спасибо

1

Решение

Когда вы инициализируете новый 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 объект, жрать не поставляется с \GuzzleHttp\Psr7\Request\Request но \GuzzleHttp\Psr7\Request,

Теперь при правильном способе отправки запроса получение информации о запросе так же просто, как показано ниже:

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]