2013-05-07 2 views
2

Я мало знаю о Django, но мне нужно написать клиент, который взаимодействует с сервисом Django REST.Django Отклонение POST с Firefox RESTClient & Jersey, работает с Chrome POSTMAN и curl

GET работает для меня во всех четырех интерфейсах. Я пробовал: Chrome POSTMAN, Firefox RESTClient, клиент Джерси на Java и завиток.

POST отклоняется Django с 400 BAD REQUEST в Джерси и RESTClient, но не в двух других. К сожалению, окончательное решение - использовать Джерси, так что это большая проблема.

Я догадываюсь, что это клиентская кодировка, которой Django не нравится, поэтому я надеюсь, что кто-то там сможет рассказать мне разницу между POSTMAN и RESTClient? (Я посылаю данные, как "сырой" JSON в POSTMAN)

Вот мой джерси код:

Client client = Client.create(); 
WebResource resource = client.resource("rest service endpoint"); 
resource.header("Content-Type", "application/json"); 
resource.post("{"\name\":\"test\",\"age\":29}"); // Returns a 400 Bad request 

проводок { "имя": "Тест", "возраст": 29} для Chrome работ ,

Спасибо за помощь.

+0

У меня возникли проблемы, когда Nginx (Apache тоже) не позволяет передавать заголовки с подчеркиванием. Так что в основном HEADER_NAME не проходит. Обязательно сделайте это НАЗВАНИЕ HEADER. Обычно я использую POSTMAN и FF RESTClient. – yeaske

ответ

1

Хорошо, я, по крайней мере, понял это из Джерси. Выполнение ТСРйитр показало, что мой заголовок приложения/JSON не делает его через так что я получил, что выяснял делая ...

WebResource.Builder resource = client.resource("web server").type(MediaType.APPLICATION_JSON); 

Затем он работал. По-прежнему не знаю, почему это не работает в REST Client, поэтому, если кто-то знает, что дайте мне знать!