【问题标题】:PHP cUrl - post data doesn't go through proxyPHP cUrl - 发布数据不通过代理
【发布时间】:2011-09-12 10:28:18
【问题描述】:

我使用此代码登录远程服务器。当我不使用代理时,一切工作正常。但使用代理则不会。

代码如下:

  $ch = curl_init();
  curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
  curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
  curl_setopt($ch, CURLOPT_USERAGENT, $agent);
  curl_setopt($ch, CURLOPT_TIMEOUT, 20);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);


  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_REFERER, $ref_url);


  curl_setopt($ch, CURLOPT_HEADER, FALSE);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
  curl_setopt($ch, CURLOPT_POST, TRUE);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE); 
  curl_setopt($ch, CURLOPT_PROXY, $proxy.':'.$port);
  ob_start();

  return curl_exec ($ch); // execute the curl command
  ob_end_clean();
  curl_close ($ch);
  unset($ch);

我尝试禁用 CURLOPT_HTTPPROXYTUNNEL 但没有帮助。

所以,没有代理我可以正常登录。 没有代理。 代理广告效果很好。

【问题讨论】:

  • 这不会直接解决问题,但是a)因为你设置了CURLOPT_RETURNTRANSFER,所以输出缓冲是没有意义的,去掉ob_start()/ob_end_clean()调用,b)你正在尝试在 return 语句之后运行代码 - 这永远不会执行,您需要在变量中捕获返回数据,然后调用 curl_close(),然后返回数据。我猜,因为你有一个 return 调用,这是在一个函数中,所以 unset() 调用是不必要的 - 当你离开函数的范围时,句柄将被销毁。
  • 如果您将return 调用替换为echo - 即curl_exec() 的输出是什么?您需要删除输出缓冲才能看到这个...
  • 这只是我在浏览我登录并抓取一些数据的站点时多次调用的函数。在第一次运行中,我检查代理,然后登录,然后在站点内导航...但是当我不使用代理时一切正常...所以代码很好...但是当使用代理时,然后在登录页面后我得到再次登录页面,就像它不会将帖子数据发送到登录页面一样。

标签: php curl login proxy


【解决方案1】:

使用您发布的代码时遇到的代理错误是什么?代理需要认证吗?

【讨论】:

  • 我没有收到任何错误。代理工作正常。在第一次通话中,我检查代理是否正常工作。我认为它只是在使用代理时不发送帖子数据。
  • @CodeCaster:你有Skype吗?
  • CURL 将通过代理发送帖子数据。发出请求时从 CURL 获得的数据是什么?在调用curl_exec(); 之前尝试使用error_reporting(E_ALL | E_STRICT);。是的,我有 Skype,支持价格从每季度 40 美元起。
【解决方案2】:

我遇到了同样的问题,代码在没有代理的情况下工作正常,但没有返回任何内容 ,我做了一些调试,发现实际上在大多数服务器上只允许端口 80 ,我们使用的许多代理通过另一个端口连接

  • 您可以取消阻止您拥有最大代理的端口号
  • 您可以仅使用端口 80 代理过滤列表

注意:同样只使用端口 http、https 和 socks4 代理,socks5 代理在 udp 上运行而不是在 tcp/ip 上

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多