При вызове curl с помощью php, я могу перехватить обратный вызов на CURLOPT_PROGRESSFUNCTION
и прочитать заголовки во время выполнения запроса, используя curl_multi_getcontent($handle)
$handle = curl_init()
curl_setopt(CURLOPT_NOPROGRESS, false)
curl_setopt(CURLOPT_RETURNTRANSFER, true)
curl_setopt(CURLOPT_PROGRESSFUNCTION, function($handle) {
$response = curl_multi_getcontent($handle);
// some logic here
})
curl_exec($handle)
Как это сделать с помощью Guzzle?
Проблема в том, что я не могу использовать curl_multi_getcontent($handle)
без установки CURLOPT_RETURNTRANSFER
на true
.
Но когда я установил CURLOPT_RETURNTRANSFER
в конфигурацию curl curzzle, я смогу прочитать заголовки в функции выполнения $response = curl_multi_getcontent($handle);
Однако поток ответов содержит пустое содержимое.
$request->getResponse()->getBody()->getContents(); // always outputs ""
Редактировать: У меня естьсделал это изменение https://github.com/guzzle/guzzle/pull/2173, чтобы я мог получить доступ к обратному обратному вызову дескриптора с настройками прогресса:
'progress' => function($handle) {
$response = curl_multi_getcontent($handle);
// some logic here
})
Это работает, пока CURLOPT_RETURNTRANSFER
равно true
.Однако, как я упоминал ранее, содержание ответа ""
затем.