[英]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。我的问题是,我的卷曲是否正确? 有什么我想念的吗? 如果没有,您能帮我指出哪个错误以及如何解决吗?
当远程服务器拒绝响应来自curl
, wget
类的代理的请求时,通常会发生这种行为。 因此,我们必须欺骗代理标头。
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.