2012-05-26 2 views
1

Я разрабатываю API REST и нашел очень интересную проблему.REST API работает в браузере, но не с клиентом

Когда я получаю доступ к ресурсам в веб-браузере (в моем случае Chrome), все работает нормально. Однако, когда я обращаюсь к ресурсам с помощью клиента REST (плагин Google Chrome, веб-клиент и апплет Java), NONE из переменных переходит к API. Это происходит как с методами GET, так и с POST.

У меня нет абсолютно никакой идеи, почему это было бы так, и это очень сложно проверить методы, прежде чем вводить их в производство (особенно с помощью методов POST).

Пожалуйста, помогите!

+4

Wnat точно идет не так? Какие коды ошибок вы получаете? Кроме того, у вас есть автомобиль в вашем профиле. Вы должны быть трансформатором. – toniedzwiedz

+1

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

+0

Я трансформатор (имя - Cadillac), и, например, у меня есть функция «эхо» для метода GET, где все это происходит, - это выплюнуть переменные, переданные Это. В браузере он работает без инцидентов. Тем не менее, у клиентов он просто возвращается , и все. – David

ответ

1

На первый взгляд это звучит это может быть 2 вещи:

  1. Вы не правильно передавать параметры API с помощью вашего клиента или апплета
  2. Проблема аутентификации или управления печеньем. Требуется ли API для любого типа авторизации?
  3. Забываете ли вы установить необходимый HTTP-заголовок?
+0

Я вводил правильный X-API-KEY (то, что мы используем) и все переменные так же, как и в браузере, с обозначением «key = value», но на клиенте. – David

+0

Интересно - Обычно я бы подумал, что x-api-ключ - это то, что вы отправляете через HTTP-заголовок. См .: http://docs.oracle.com/javase/6/docs/api/java/net/URLConnection.html#setRequestProperty%28java.lang.String,%20java.lang.String%29 –

0

У вас есть контроль над API также или это сторонний API? Если да, выполняются ли параметры вообще или они поступают пустыми? Что такое код ошибки? - 403 не авторизовано (что имеет смысл, если ключ не проходит) или что-то еще из-за недостающих параметров.

Попробуйте выполнить промежуточную операцию с помощью CURL из командной строки - это даст вам более подробную информацию о том, что возвращается.

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