Django拒绝使用Firefox RESTClient& amp;泽西,使用Chrome POSTMAN和curl

时间:2013-05-07 18:14:47

标签: django rest jersey rest-client

我对Django知之甚少,但我需要编写一个与Django REST服务交互的客户端。

GET在我尝试的所有4个界面中都适合我:Chrome POSTMAN,Firefox RESTClient,Java中的Jersey客户端和curl。

POST被Django拒绝,在Jersey和RESTClient中有400个BAD REQUEST,但在其他两个中没有。不幸的是,最终的解决方案是使用泽西岛,这是一个很大的问题。

我猜这是Django不喜欢的客户端编码,所以我希望有人可以告诉我POSTMAN和RESTClient之间的区别? (我在POSTMAN中将数据作为“原始”json发送)

这是我的球衣代码:

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

向Chrome发布{“name”:“test”,“age”:29}。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

好吧,我至少从泽西岛看出来了。做一个tcpdump,发现我的应用程序/ json标题没有通过,所以我通过做...得到了解决...

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

然后它奏效了。仍然不知道为什么这在REST Client中不起作用,所以如果有人知道让我知道!