2015-12-17 3 views
2

Я тестирую ЗДЕСЬ Карты REST API - Custom Location Extension и сталкиваются с проблемой. Было упомянуто, что запрос POST с использованием Коридора Поиск с использованием координат для пользовательских местоположений можно использовать вместо запроса GET, если я хочу отправить запрос с большим набором координат, но пример POST не был указан в documentation.Как отправить запрос POST для пользовательского расширения местоположения

Я пытался выяснить, как представить POST запрос, и это было, как далеко я получил:

Запрос:

POST /v1/search/corridor HTTP/1.1 
Host: customlocation.cit.api.here.com 

?app_id={YOUR_APP_ID} 
&app_code={YOUR_APP_CODE} 
&route=52.51978,13.388211, 
52.5198326,13.3882084, 
52.5198402,13.3883495, 
52.5147705,13.3891602, 
52.514758,13.389155 
&radius=100 
&layerId=30 

Ответ:

{ 
    "message": "Required parameters have not been provided", 
    "status": "400 Bad Request", 
    "error": "Required String parameter 'route' is not present", 
    "targetLayerId": null 
} 

Примечания:

  • Я написал это здесь, используя формат HTTP
  • Этот запрос был тот же GET запрос в документации, и я просто попытался преобразовать его в качестве POST запроса путем перемещения параметра запроса в тело и посылая запрос с использованием POST ,
  • тип данных Body устанавливается как RAW TEXT

Edit: (Дальнейшее испытание)

Я также попытался переместить все параметры запроса от тела к URL, кроме route.

POST /v1/search/corridor ?app_id=Qk8YkRrHMbbbpkVipwIZ 
&app_code=tYSXrAAHGEOcUB_cxbPQSA&radius=100&layerId=852 HTTP/1.1 

route=52.51978,13.388211, 52.5198326,13.3882084, 
52.5198402,13.3883495, 
52.5147705,13.3891602, 
52.514758,13.389155 

Ответ: { "сообщение": "Требуемые параметры не были предоставлены", "статус": "400 Bad Request", "ошибка": «параметр Обязательная строка 'маршрут' не представить», „targetLayerId“: нулевой }

ответ

1

я ткнул в это немного и был в состоянии получить ответ с помощью POST Инг путем удаления route из строки запроса и отправки его в виде пары форма ключ/значение. Я использовал демо-учетные данные и тестирую с помощью плагина Chrome «Почтальон». Мой POST URL выглядит следующим образом:

https://customlocation.cit.api.here.com/v1/search/corridor?layerId=30&radius=100&app_id=DemoAppId01082013GAL&app_code=AJKnXv84fjrb0KIHawS0Tg

, а затем я поставил либо form-data или x-www-form-urlencoded ключ «маршрута», а затем значение было строка координат. И затем он вернулся с успешным ответом. Я получил ту же самую ошибку, о которой вы говорили при попытке поставить любую полезную нагрузку в качестве исходного текста.

Вещи, которые я не знаю: есть ли предел значений данных формы?

Удачи. Я согласен с тем, что официальный документ довольно прост в примерах POST, тем более, что они явно предлагают это как метод отправки больших полезных нагрузок.

+0

Это работало для меня очень хорошо. Благодаря! –

Смежные вопросы