2

我对 Django 了解不多,但我需要编写一个与 Django REST 服务交互的客户端。

GET 在我尝试过的所有 4 个界面中都适用:Chrome POSTMAN、Firefox RESTClient、Jersey Client in Java 和 curl。

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

我猜在这一点上,这是 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

将 {"name":"test","age":29} 发布到 Chrome 是可行的。

谢谢您的帮助。

4

1 回答 1

1

好吧,我至少从泽西岛弄明白了。执行 tcpdump 显示我的 application/json 标头没有通过,所以我通过执行...

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

然后它起作用了。仍然不知道为什么这在 REST 客户端中不起作用,所以如果有人知道,请告诉我!

于 2013-05-07T20:11:06.050 回答