Мне нужно использовать сторонний API с помощью curl в PHP, но почему-то я получаю неправильный ответ с помощью curl, но когда я нажимаю тот же запрос с помощью Postman, я получаю правильный результат.
Мульти локон
$this->curlArray[$id] = curl_init();
curl_setopt($this->curlArray[$id], CURLOPT_URL, "$url");
curl_setopt($this->curlArray[$id], CURLOPT_HEADER, 0);
curl_setopt($this->curlArray[$id], CURLOPT_RETURNTRANSFER, true);
curl_setopt($this->curlArray[$id], CURLOPT_ENCODING, 'gzip');
curl_setopt($this->curlArray[$id], CURLOPT_TIMEOUT, 30);
curl_setopt($this->curlArray[$id], CURLOPT_HTTPHEADER, $header);
curl_multi_add_handle($this->multi, $this->curlArray[$id]);
Выше - multi curl, с помощью которого мы выполняем запрос.
И используя тот же запрос и тот же заголовок, что и почтальон, мы получаем правильный ответ.
Если кто-то столкнется с этой проблемой, дайте мне знать, почему я получаю это
Образец запроса ниже для сравнения: -
Postman Request Parameters and header
URL: XXXXXX.availability/vn52hfn4jwi5zhy?hotel_info=false&rates=false&hcode=H!0249886&bundled=true
Headers:
api-key:2f7ef83xyzxyzxyzxyzxyzxyzxyzxyz
Content-Type:application/json
Accept:application/json
Accept-Encoding:application/gzip
parameters:
hotelinfo:false
rates:false
hcode:O987b
CURL Request Paramters and Headers
URL:XXXXXX.availability/vn52hfn4jwi5zhy
parameters:{"hotelinfo":false,"rates":false,"hcode":"O987b"}
Headers : Array
(
[0] => Content-Type:application/json
[1] => Accept:application/json
[2] => Accept-Encoding:application/gzip
[3] => api-key:2f7ef83xyzxyzxyzxyzxyzxyzxyzxyz
)
)
Проверяю параметры запроса и заголовок запроса, они совпадают. Надо ли еще что-нибудь проверить ???
Я не знаю? Должна быть только одна причина, по которой ответы разные, и это то, что запросы разные. Выгрузите оба сырых запроса, сравните их и посмотрите, заметите ли вы различия. Если они действительно одинаковы, API делает что-то очень странное, и вам действительно стоит обратиться в его службу поддержки.
Скопируйте код Curl (PHP) непосредственно из почтальона, затем запустите его в своем приложении PHP, чтобы убедиться, что он работает, затем сравните настройки curl, чтобы выяснить, в чем была причина.
Спасибо всем за комментарии






Переходя к коду и объяснению, которое вы опубликовали: запросы, вероятно, одинаковы.