首页 >后端开发 >php教程 >为什么我通过代理的 CURL 请求失败,如何修复?

为什么我通过代理的 CURL 请求失败,如何修复?

Susan Sarandon
Susan Sarandon原创
2024-11-14 09:49:01319浏览

Why Is My CURL Request Through a Proxy Failing, and How Can I Fix It?

如何通过代理使用 CURL:故障排除指南

使用代理服务器可以增强 curl 的功能,但不正确的设置可能会导致错误。以下是对您的代码的全面分析以及您遇到的问题的解决方案:

问题 1:缺少变量

在初始代码片段中,第 12 行尝试使用 $url 而不初始化它:

$url = '$_POST[1]';

解决方案:

使用 HTML 表单中的适当值初始化 $url。

问题 2:黑屏

更新后的代码现在仅返回黑屏。这很可能是因为 $curl_scraped_pa​​ge 没有回显输出:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);

解决方案:

将 CURLOPT_RETURNTRANSFER 设置为 1 以启用到 $curl_scraped_pa​​ge 的输出。

最终工作代码:

$url = 'http://dynupdate.no-ip.com/ip.php';
$proxy = '66.96.200.39:80';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
$curl_scraped_page = curl_exec($ch);
curl_close($ch);

echo $curl_scraped_page;

附加说明:

  • CURLOPT_PROXYUSERPWD 可用于提供用户名和密码代理身份验证。
  • 如果输出中不需要标头,可以注释掉 CURLOPT_HEADER。
  • 将 CURLOPT_PROXY 设置为 null 会禁用特定请求的代理。

以上是为什么我通过代理的 CURL 请求失败,如何修复?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn