Anonymous
Код состояния возврата вызова cURL 0 на СЕРВЕРЕ
Сообщение
Anonymous » 25 июл 2024, 19:24
Я пытаюсь выполнить вызов API с помощью метода Curl.
Я попробовал тот же вызов в 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 '
' , print_r($debug, true), '';
}
return $ch;
Я не знаю, что мне делать.. потому что статус всего 0.. ничего похожего на 403, 404 и т. д.
Спасибо за помощь.
РЕДАКТИРОВАТЬ сильный>
Код: Выделить всё
$ch = $this->_cURL($url, $data, $request, $headAccept);
$return = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
РЕДАКТИРОВАНИЕ 2[/b]
После вызова 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 и работает... значит, это проблема с сервером... но я не знаю, что делать...
Подробнее здесь:
https://stackoverflow.com/questions/544 ... the-server
1721924643
Anonymous
Я пытаюсь выполнить вызов API с помощью метода Curl. Я попробовал тот же вызов в MAMP, используя демонстрационный проект от создателей приложения. что я хочу интегрировать, и все это PHP-код... сейчас на сервере я только что подключил библиотеку PHP и попытался выполнить вызов в PHP, но не знаю, почему я получил код состояния 0. [code]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 ' ' , print_r($debug, true), ''; } return $ch; [/code] Я не знаю, что мне делать.. потому что статус всего 0.. ничего похожего на 403, 404 и т. д. Спасибо за помощь. [b]РЕДАКТИРОВАТЬ сильный> [code] $ch = $this->_cURL($url, $data, $request, $headAccept); $return = curl_exec($ch); $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); [/code] РЕДАКТИРОВАНИЕ 2[/b] После вызова print_r(curl_getinfo($ch)); ответ: [code]( [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 ) [/code] [b]РЕДАКТИРОВАТЬ 3[/b] Я скачал проект с производства и протестировал его на локальном хосте, используя php artisan:serve и работает... значит, это проблема с сервером... но я не знаю, что делать... Подробнее здесь: [url]https://stackoverflow.com/questions/54444934/curl-call-return-status-code-0-on-the-server[/url]