Получение ошибки 405 при запуске сеанса поиска рейсов RapidAPI Skyscanner после создания в PHP

#php #rapidapi

#php #rapidapi

Вопрос:

Я пытаюсь получить заголовок местоположения из ответа после сеанса создания, но получаю ошибку 405. Весь остальной ответ, который я получаю, за исключением заголовка местоположения.

 require_once 'vendor/autoload.php';
require_once 'vendor/mashape/unirest-php/src/Unirest.php';

$response = UnirestRequest::post("https://skyscanner-skyscanner-flight-search-v1.p.rapidapi.com/apiservices/pricing/v1.0",
  array(
    "X-RapidAPI-Host" => "skyscanner-skyscanner-flight-search-v1.p.rapidapi.com",
    "X-RapidAPI-Key" => "d0f49284f7mshba8a904a96cf3acp19aa44jsnb4056f027c69",
    "Content-Type" => "application/x-www-form-urlencoded"
  ),
  array(
    "inboundDate" => "2019-04-25",
    "cabinClass" => "business",
    "children" => 0,
    "infants" => 0,
    "country" => "IN",
    "currency" => "INR",
    "locale" => "en-US",
    "originPlace" => "BLR-sky",
    "destinationPlace" => "DEL-sky",
    "outboundDate" => "2019-04-26",
    "adults" => 1
  )
);

 print_r($response);
  

Я ожидаю такого ответа:

 "cache-control": "private"
"content-type": "application/json"
"date": "Wed, 24 Apr 2019 05:01:39 GMT"
"location": "http://partners.api.skyscanner.net/apiservices/pricing/hk1/v1.0/42ba47f0-314c-41fa-987d-fb8c5862309b"
"server": "RapidAPI-1.0.15"
"x-rapidapi-region": "AWS - ap-southeast-1"
"x-rapidapi-version": "1.0.15"
"content-length": "2"
"connection": "Close"
  

Но фактический результат:

Объект Unirest Response ( [code] => 405 [raw_body] => {} [body] => Объект stdClass ( ) [заголовки] => Массив ( [0] => HTTP / 1.1 Метод 405 не разрешен [Cache-Control] => private [Content-Type] => application /json [Дата] => Ср, 24 апр 2019 04:34:14 GMT [Сервер] => RapidAPI- 1.0.15 [X-RapidAPI-Region] => AWS — ap-southeast-1 [X-RapidAPI-Version] => 1.0.15 [Длина содержимого] => 2 [Подключение] => поддерживать работоспособность ) )

Комментарии:

1. У меня такая же проблема. Вы нашли решение для этого?

2.Посмотрите, что именно говорится в ошибке: HTTP/1.1 405 Method Not Allowed , так что это, по какой-либо причине, намеренно отклонено. Если вы считаете, что это ошибка, вам следует связаться со Skyscanner.

Ответ №1:

Я предполагаю, что вы используете API поиска рейсов Skyscanner в RapidAPI Hub. Интересно, что я не вижу ни одного запроса POST, поддерживаемого этим API.

Это может быть причиной, что метод 405 не разрешен, означает, что метод HTTP просто не поддерживается. Например, клиент может выполнить запрос POST на ресурсе, где POST не реализован или это бессмысленно.