【问题标题】:PHP Curl Get Request Returning FalsePHP Curl 获取请求返回 False
【发布时间】:2015-05-15 15:25:04
【问题描述】:

我正在做某事,但我不明白发生了什么。我尝试了不同的东西。我正在向网站发送获取请求,但它不起作用,curl 总是返回 false。但是,如果我将 url 放到浏览器中并检查它,我会得到一些响应。这是网址

"https://cleanlead.dlg.co.uk/?circuit=public&fuseaction=lead&Campid=599&Suppid=571&Surveyid=5&Title=Mr&Forename=Adrian&Surname=Reut&Address1=8 Church Road Middlesex&Finance_Insurance_PMI_CurrentlyHave=Yes&Postcode=UB3 2LH&Finance_PMI_ThruCompany=No&TelephoneORMobile=2087976760&Age_Band=30-39"

这是我的 curl 代码

$ch = curl_init();  
//var_dump($url.$postData);
curl_setopt($ch,CURLOPT_URL,urlencode("https://cleanlead.dlg.co.uk/?circuit=public&fuseaction=lead&Campid=599&Suppid=571&Surveyid=5&Title=Mr&Forename=Adrian&Surname=Reut&Address1=8 Church Road Middlesex&Finance_Insurance_PMI_CurrentlyHave=Yes&Postcode=UB3 2LH&Finance_PMI_ThruCompany=No&TelephoneORMobile=2087976760&Age_Band=30-39"));
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_HEADER, false); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, false); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, false);   
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET'); 
$output=curl_exec($ch);

curl_close($ch);
var_dump($output);

【问题讨论】:

  • 不要对整个 URL 进行 urlencode,只对适用的值进行 urlencode。
  • 所以我要删除 urlencode?​​span>
  • HTTP 错误 400。如果我删除 url 编码,请求格式错误
  • 这不是我所说的……阅读 urlencode() 的手册……
  • 把它放在$output 行之后。 if ($output === false) curl_error($ch);

标签: php curl get


【解决方案1】:

您只需要urlencode() 查询字符串的值部分,在这种情况下为字段PostcodeAddress1

<?php

$ch = curl_init();  
//var_dump($url.$postData);
$requestUrl = "https://cleanlead.dlg.co.uk/?";
$requestUrl .= "circuit=public&fuseaction=lead&Campid=599&Suppid=571&Surveyid=5&Title=Mr&Forename=Adrian&Surname=Reut";
$requestUrl .= "&Address1=" . urlencode("8 Church Road Middlesex");
$requestUrl .= "&Finance_Insurance_PMI_CurrentlyHave=Yes";
$requestUrl .= "&Postcode=" . urlencode("UB3 2LH");
$requestUrl .= "&Finance_PMI_ThruCompany=No&TelephoneORMobile=2087976760&Age_Band=30-39";
curl_setopt($ch,CURLOPT_URL, $requestUrl);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_HEADER, false); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, false); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, false);   
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET'); 
$output=curl_exec($ch);
if (curl_error($ch)) {
    var_dump();
}
curl_close($ch);
var_dump($output);


?>

【讨论】:

  • 哇。非常感谢。这对我有用。我只是编辑了参数并将其改为数组。我希望我也可以选择其他人作为答案。谢谢你
猜你喜欢
  • 1970-01-01
  • 2016-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多