繁体   English   中英

cURL PHP GET未发送

[英]cURL PHP GET not sending

我正在尝试将CURL GET数据发送到某个网站,但似乎从未成功。

它需要类似于以下内容:

GET /webservices/ssl/something.asmx HTTP/1.1
Host: http://www.thewebsite.com

我尝试了以下方法,但似乎没有通过:

$url = "http://www.thewebsite.com/webservices/ssl/something.asmx";
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Host: www.thewebsite.com'));
curl_setopt($ch, CURLOPT_HTTP_VERSION, 1.1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
print_r($result);
print_r($info);

print_r($result)打印任何内容。 甚至没有错误404。我的问题是,我的卷曲是否正确? 有什么我想念的吗? 如果没有,您能帮我指出哪个错误以及如何解决吗?

当远程服务器拒绝响应来自curlwget类的代理的请求时,通常会发生这种行为。 因此,我们必须欺骗代理标头。

curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");

您不需要以下标头,因为curl可自行处理。

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Host: www.thewebsite.com'));
curl_setopt($ch, CURLOPT_HTTP_VERSION, 1.1);

除此之外,如果您的站点需要Cookie,请不要忘记包括cookie的存储。

curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");

最后,如果curl_exec返回FALSE请检查curl_error()以获取更多信息。

curl_init有时可能会出现这种现象。 尝试在网址后添加斜杠“ /”。

此外,请考虑到函数curl_init在出现错误或结果为空(如您的情况)时应返回FALSE。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM