[尝试执行get请求并获取答案正文时,curl_exec返回false,curl_error返回空字符串。
代码如下:
$curl = curl_init();
$opts = [
CURLOPT_URL => '
https://example.com'. $scope.'&item_value[]='.$param.'&api_key=XXXX',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => false,
CURLOPT_VERBOSE => true,
CURLOPT_AUTOREFERER => true,
CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17'];
curl_setopt_array($curl, $opts);
var_dump($opts);
$response = curl_exec($curl);
var_dump($response);
if ($response === false) {
$response = curl_error($curl);
var_dump(curl_getinfo($curl));
}
var_dump($response);
curl_close($curl);
return($response);
[请注意,我尝试添加CURLOPT_AUTOREFERER作为调试请求的尝试,对于CURLOPT_USERAGENT设置为firefox的情况相同。没有这些选项,我的结果相同。
还请注意,我尝试请求的CURLOPT_URL是100%有效的(我已var_dumped opts数组以确保所计算的URL正确,有效并返回数据,并且是。)>]
输出如下:
# var_dump $response xxx.php:24:boolean false # var_dump curl_error($curl) since $response == false xxx.php:31:string '' (length=0) # var_dump curl_getinfo($curl) array (size=37) 'url' => string ' https://100%_valid_url.com' (length=180) 'content_type' => null 'http_code' => int 0 'header_size' => int 0 'request_size' => int 0 'filetime' => int -1 'ssl_verify_result' => int 0 'redirect_count' => int 0 'total_time' => float 0 'namelookup_time' => float 0 'connect_time' => float 0 'pretransfer_time' => float 0 'size_upload' => float 0 'size_download' => float 0 'speed_download' => float 0 'speed_upload' => float 0 'download_content_length' => float -1 'upload_content_length' => float -1 'starttransfer_time' => float 0 'redirect_time' => float 0 'redirect_url' => string '' (length=0) 'primary_ip' => string '' (length=0) 'certinfo' => array (size=0) empty 'primary_port' => int 0 'local_ip' => string '' (length=0) 'local_port' => int 0 'http_version' => int 0 'protocol' => int 0 'ssl_verifyresult' => int 0 'scheme' => string '' (length=0) 'appconnect_time_us' => int 0 'connect_time_us' => int 0 'namelookup_time_us' => int 0 'pretransfer_time_us' => int 0 'redirect_time_us' => int 0 'starttransfer_time_us' => int 0 'total_time_us' => int 0
显然,请求出了点问题,但是我似乎无法获得错误状态。也许服务器配置可能不允许Curl?
[尝试执行get请求并获取答案正文时,curl_exec返回false,curl_error返回空字符串。代码如下:$ curl = curl_init(); $ opts = [...
从发布的代码和“ var dump”来看,URL中都有换行符,请尝试