Ошибка: «Длина значения имени пользователя превышает 20 символов» при вызове Sabre CarAvailability в Postman

#javascript #postman #sabre

#javascript #postman #sabre

Вопрос:

Я пытаюсь отправить POST-запрос к Sabre CarAvailability API с Postman. Когда я делаю запрос, я получаю обратно следующую ошибку: длина значения имени пользователя превышает 20 символов.

  • Я получил токен на предъявителя и добавил его в раздел авторизации моего запроса
  • Я добавил carAvailabilityRequest объект в качестве необработанных данных в раздел тела запроса.
  • Я пытался изменить значения этого объекта, но пока безуспешно. Я знаю, что делаю что-то не так, но я понятия не имею, что.

Вот объект carAvailabilityRequest, который я передал:

 {
  "OTA_VehAvailRateRQ": 
  {
    "TimeStamp": "string",
    "Version": "string",
    "ReturnHostCommand": true,
    "VehAvailRQCore": 
    {
      "RPH": 0,
      "QueryType": "Quote", 
      "VehRentalCore": 
      {
        "PickUpDateTime": "03-31T09:00",
        "ReturnDateTime": "04-05T11:00",
        "PickUpLocation": 
        {
          "LocationCode": "DFW",
          "CityLocation": "string"
        },
        "ReturnLocation": 
        {
          "LocationCode": "DFW"
        }
      }
    }
  }
}
  

Запрос не проходит, и я получаю следующее сообщение об ошибке:

 {
    "Fault": {
        "faultcode": "{http://schemas.xmlsoap.org/soap/envelope/}Client.EbXmlFieldTooLong",
        "faultstring": "Username value length exceeds 20 characters",
        "detail": {
            "StackTrace": [
                "com.sabre.universalservices.base.exception.InvalidEbXMLException: errors.xml.USG_EBXML_FIELD_TOO_LONG"
            ]
        }
    },
    "Links": [
        {
            "rel": "self",
            "href": "https://api-crt.cert.havail.sabre.com/v2.4.1/shop/cars"
        },
        {
            "rel": "linkTemplate",
            "href": "https://api-crt.cert.havail.sabre.com/<version>/shop/cars"
        }
    ]
}
  

Пожалуйста, помогите мне решить эту проблему — заранее спасибо.

Ответ №1:

Просто из сообщения «Длина значения имени пользователя превышает 20 символов» я бы ожидал, что что-то не так с вашей аутентификацией.

При переходе по ссылке в вашем ответе об ошибке https://api-crt.cert.havail.sabre.com/v2.4.1/shop/cars снова говорится, что что-то не так с вашей аутентификацией / данные аутентификации отсутствуют:

Ответ об ошибке

Кажется, что что-то неправильно настроено с вашим токеном аутентификации / предъявителя или, возможно, вы отправляете на неправильную конечную точку?

Что-то еще, что вы могли бы попробовать, это установить для Content-Type тела вашего запроса значение application/json , поскольку предоставленная вами документация по API, похоже, определяет это таким образом.

Вы можете сделать это в Postman на вкладке Заголовки вашего запроса:

Вкладка заголовки Postman

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

1. Спасибо за ваш ответ. Тип содержимого уже был установлен в application / json. У меня есть токен на предъявителя длиной 1600 символов. Если я урежу его до 20 символов, я получу ошибку «недостающие учетные данные». Если я оставлю все как есть, я получу ошибку «Длина значения имени пользователя превышает 20 символов». Я снова проверю все в postman, чтобы посмотреть, что я узнаю.

Ответ №2:

Я попробовал это сам с тем же сообщением об ошибке, используя версию v2.4.1

Если вы сделаете тот же запрос к предыдущей версии, вы получите соответствующий ответ. Используйте версию v2.4.0 https://api-crt.cert.havail.sabre.com/v2.4.0/shop/cars

HTH Пабло.