PHP cURL Строка запроса ответа - PullRequest
0 голосов
/ 22 октября 2019

Я делаю запрос cURL в PHP на URL, который немедленно перенаправляет обратно на исходную страницу, добавляя параметр строки запроса в конец URL перенаправления.

Например: при загрузке страницы https://url0.com сделать веб-запрос на https://url1.com

Когда запрос достигает https://url1.com, он перенаправляется обратно на https://url0.com?test=1

Моя цель - получить заголовки ответа из запроса cURL и просто прочитать параметр строки запроса. Проблема в том, что заголовки ответа всегда выглядят так:

HTTP/1.1 302 Found Cache-Control: private Content-Length: 153 Content-Type: text/html; charset=utf-8 Location: https://url0.com Server: Microsoft-IIS/8.5 Set-Cookie: ASP.NET_SessionId=0wjspsdi38dnclufiv3znpc; path=/; HttpOnly X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date: Tue, 22 Oct 2019 18:44:12 GMT

Я не могу понять, как получить строку запроса из этого. Я использую следующие параметры:

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

Мне не нужно тело ответа, поэтому я использую CURLOPT_NOBODY, чтобы просто получить заголовки.

Спасибо!

1 Ответ

0 голосов
/ 23 октября 2019

Глядя в руководство, есть CURLINFO_EFFECTIVE_URL для функции curl_getinfo(). Может работать что-то вроде следующего:

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
$lastUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); //$lastUrl should contain the last URL called
curl_close($ch);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...