@rewritescr

Как правильно передать http заголовок в php curl?

Здравствуйте, помогите пожалуйста переделать запрос из curl в php curl

Если ввести этот запрос просто в терминале сервера то придет json ответ
{"domains":[{"domain":"site1.io"},{"domain":"site2.io"}],"ok":true} и в заголовке будет HTTP/1.1 200 OK

curl -k -X GET "https://postmaster.mail.ru/ext-api/reg-list/" -H 'Bearer: a469d2ad60b77a7aa2a5b75f911b09b8f3f27ab637363830'


Пробую то же самое через php в ответ получаю только HTTP/1.1 403 Forbidden Server, json ответа нет скорей всего не доходит HTTP заголовок с токеном.

$ch = curl_init('https://postmaster.mail.ru/ext-api/reg-list/');
$token = 'a469d2ad60b77a7aa2a5b75f911b09b8f3f27ab637363830';
 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); 
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, false);
 
$authorization = 'Authorization: Bearer ' . $token;
curl_setopt($ch, CURLOPT_HTTPHEADER, $authorization);
 
$html = curl_exec($ch);
curl_close($ch);
echo $html;


Помогите решить проблему пожалуйста
если что документация тут https://help.mail.ru/postmaster/api#authorization
  • Вопрос задан
  • 3617 просмотров
Пригласить эксперта
Ответы на вопрос 2
thewind
@thewind
php программист, front / backend developer
опция CURLOPT_HTTPHEADER по идее должна быть массивом
в вашем случае попробуйте:
curl_setopt($ch, CURLOPT_HTTPHEADER, [$authorization]);

у меня такой подход работает для одного из проектов mail.ru

посмотрел свой код - там нет ключевика Bearer - попробуйте его тоже убрать в вашем первоначальном варианте
Ответ написан
Комментировать
kotomyava
@kotomyava
Системный администратор
У вас в случае консоли заголовок:
Bearer: a469d2ad60b77a7aa2a5b75f911b09b8f3f27ab637363830


В случае программы почему-то:
Authorization: Bearer a469d2ad60b77a7aa2a5b75f911b09b8f3f27ab637363830


Это, как бы, разные заголовки. =)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы