Итак, я проверил это с помощью fiddler, а также Rest Console и Advanced Rest Console, там все прекрасно работает, но когда я запускаю из cURL, я получаю либо ошибку тайм-аута соединения, либо не могу подключиться к хосту. URL-адреса одинаковы, заголовки одинаковы, тело содержимого одинаково. Я просто не понимаю РЕДАКТИРОВАТЬ: БЕЗ АВТОРИЗАЦИИ, ВКЛЮЧЕННОЙ НА СЕРВЕР, КОД работает просто
Почти 5 часов застряли здесь, вот код:
function getLicenses() {
$license = new LicenseConnector();
$curl = curl_init();
$headers = array(
'Authorization: Bearer 12345...',
'Content-Type: application/x-www-form-urlencoded'
);$myPost = 'RequestingAgency=Woo&AcctEmail=&LengthOfLic=365&Demo=on';
curl_setopt_array( $curl, array(
curl_setopt($curl, CURLOPT_URL, 'http://example.com/api/serialnumbers/getnewserial'),
curl_setopt( $curl, CURLOPT_POST, 1 ),
curl_setopt( $curl, CURLOPT_POSTFIELDS, $myPost ),
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1 ),
curl_setopt($curl, CURLOPT_HEADER, 1),
curl_setopt($curl, CURLINFO_HEADER_OUT, true),
curl_setopt( $curl, CURLOPT_HTTPHEADER, $headers )
) );
$result = curl_exec( $curl );
$results = json_decode( $result );
if ( curl_errno( $curl ) ) {
echo 'error:' . curl_error( $curl );
} else {
echo $results;
}
curl_close( $curl );
}
Затем я запускаю функцию …
Вы уверены, что cUrl включен и установлен на вашем сервере?
Вот как это сделать:
PHP CURL Включить Linux
Итак, я переписал свой код, и все работает … разве это не нормально?
$ch = curl_init();
$headers = array(
"Authorization: Bearer $auth",
);
curl_setopt($ch, CURLOPT_URL,"http://example.com/api/serialnumbers/getnewserial2");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS,
"RequestingAgency=Woo&AcctEmail=&LengthOfLic=365&Demo=on");curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);
curl_close ($ch);
echo $server_output;