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