0

我试图在重定向后在最终 URL 中获取查询字符串。

https://example.com/oauth/auth?user=foo&password=bar

在我的浏览器中重定向到:

https://example.com/?secret=8273761838346 

我需要secret={some number}部分。

我在 PHP 中使用file_get_contents尝试过(但失败了)cURL甚至是 socket 方法尝试过(但失败了)。cURL 返回带有原始 URL 的 CURLINFO,而不是最终 URL。file_get_contents $http_response_header 不包含最终 URL。

我已经尝试了可以​​在 cURL 调用上设置的选项的变体,遵循 SO 和 Google 搜索上提供的大量示例,但这些都不起作用。返回的 URL 始终是原始 URL,而不是最终 URL。

有没有人遇到过这种情况,您是如何解决的?这可能是一个愚蠢的问题,但 https 可能是问题吗?

@str,这是使用 cURL的许多版本之一,它在重定向后没有产生最终 URL:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($ch);
$header = curl_getinfo($ch);
var_dump($response);
var_dump($header);

我还尝试切换 HEADER、FOLLOWLOCATION、RETURNTRANSFER、AUTOREFERER 和其他选项而没有进展。

4

0 回答 0