#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 на вкладке Заголовки вашего запроса:
Комментарии:
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 Пабло.