PHP cUrl-post数据不';不要通过代理

PHP cUrl-post数据不';不要通过代理,php,curl,login,proxy,Php,Curl,Login,Proxy,我使用此代码登录到远程服务器。当我不使用代理时,所有的东西都可以正常工作。但对于proxy,情况并非如此 以下是代码: $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($

我使用此代码登录到远程服务器。当我不使用代理时,所有的东西都可以正常工作。但对于proxy,情况并非如此

以下是代码:

  $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,但没有任何帮助

因此,没有代理,我可以很好地登录。 没有代理。
代理是很好的广告工作。

使用您发布的代码,您得到的代理错误是什么?代理是否需要身份验证?

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

  • 您可以取消阻止具有最大代理数的端口号
  • 您可以仅使用端口80代理筛选列表

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

我没有收到任何错误。代理工作正常。在第一次调用中,我检查代理是否工作。我认为它只是在使用代理时不发送帖子数据。@CodeCaster:你有skype吗?CURL将通过代理发送帖子数据。发出请求时,您从CURL获得的数据是什么?尝试使用
错误报告(E|u ALL | E|u STRICT)curl_exec()
;之前执行代码>;。是的,我有skype,支持率从每季度40美元开始。这不会直接解决问题,但是a)因为您设置了
CURLOPT\u RETURNTRANSFER
输出缓冲是毫无意义的,所以请摆脱
ob\u start()
/
ob\u end\u clean()
调用,b)您试图在
return
语句之后运行代码-这将永远不会执行,您需要捕获变量中的返回数据,然后调用
curl\u close()
,然后返回数据。我猜,因为您有一个
返回
调用,这是在一个函数中,所以
unset()
调用是不必要的-当您离开函数的作用域时,句柄将被破坏。如果将
返回
调用替换为
echo
,您会得到什么?即
curl\u exec()
的输出是什么?您需要删除输出缓冲区才能看到这一点……这只是我在浏览我登录的站点时多次调用的函数,并从中获取一些数据。在第一次运行中,我检查代理,然后登录,然后在站点内导航…但当我不使用代理时,所有的工作都很好…所以代码很好…但当使用代理时,然后在登录页面后,我再次进入登录页面,就像它不向登录页面发送post数据一样。