【发布时间】:2019-01-30 16:16:21
【问题描述】:
我正在尝试使用 curl 方法进行 API 调用。
我已经尝试使用来自我想要集成的应用程序创建者的演示项目在 MAMP 上进行相同的调用,它都是 PHP 代码......现在在服务器上我刚刚包含了 PHP 库并尝试用 PHP 调用,但我不知道为什么我得到状态码 0。
private function _cURL($url, $data, $request, $headAccept) {
$headers = array($headAccept, "Authorization: Basic " . $this->hash);
$ch = curl_init($url);
// curl_setopt($ch, CURLOPT_MUTE, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
if ( !empty($data) ) {
$headers[] = "Content-Type: application/json; charset=utf-8";
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
}
if ( !empty($request)) {
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $request);
}
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
// debugging
$isDebug = self::DEBUG_ON_ERROR;
if ( !empty($isDebug) ) {
$debug = array(
'URL: ' => $url,
'data: ' => $data,
'headers: ' => $headAccept,
);
echo '<pre>' , print_r($debug, true), '</pre>';
}
return $ch;
}
我不知道该怎么办..因为状态只有 0.. 没有像 403、404 等。
感谢您的帮助。
编辑
$ch = $this->_cURL($url, $data, $request, $headAccept);
$return = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
编辑 2
调用print_r(curl_getinfo($ch)); 后响应为:
(
[url] => https://ws.smartbill.ro:8183/SBORO/api/estimate
[content_type] =>
[http_code] => 0
[header_size] => 0
[request_size] => 0
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 0.007306
[namelookup_time] => 0.007255
[connect_time] => 0
[pretransfer_time] => 0
[size_upload] => 0
[size_download] => 0
[speed_download] => 0
[speed_upload] => 0
[download_content_length] => -1
[upload_content_length] => -1
[starttransfer_time] => 0
[redirect_time] => 0
[redirect_url] =>
[primary_ip] =>
[certinfo] => Array
(
)
[primary_port] => 0
[local_ip] =>
[local_port] => 0
)
编辑 3
我从生产环境中下载了该项目,并使用php artisan:serve 在本地主机上进行了测试,并且可以正常工作......服务器问题也是如此......但我不知道该怎么办......
【问题讨论】:
-
你好,已编辑帖子
-
var_dump($return);检查结果,为什么你不在你的函数中使用$return = curl_exec($ch);,在你的函数中移动它并返回结果不是$ch -
你可以通过
curl_errno($ch)查看curl错误 -
@vivek_23 我不认为 IP 被列入黑名单......但我不知道防火墙......我该怎么办?我可以访问 cPanel。