我对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}。
感谢您的帮助。
答案 0 :(得分:1)
好吧,我至少从泽西岛看出来了。做一个tcpdump,发现我的应用程序/ json标题没有通过,所以我通过做...得到了解决...
WebResource.Builder resource = client.resource("web server").type(MediaType.APPLICATION_JSON);
然后它奏效了。仍然不知道为什么这在REST Client中不起作用,所以如果有人知道让我知道!