簡體   English   中英

Django使用Firefox RESTClient和Jersey拒絕POST,可與Chrome POSTMAN和curl配合使用

[英]Django Rejecting POST with Firefox RESTClient & Jersey, Works with Chrome POSTMAN and curl

我對Django不太了解,但是我需要編寫一個與Django REST服務交互的客戶端。

GET適用於我嘗試過的所有4種界面:Chrome POSTMAN,Firefox RESTClient,Java的Jersey客戶端和curl。

Django在Jersey和RESTClient中以400 BAD REQUEST拒絕了POST,但在其他兩個中卻沒有。 不幸的是,最終的解決方案是使用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即可。

謝謝您的幫助。

好的,我至少從澤西島弄清楚了。 做一個tcpdump揭示我的application / json頭沒有通過,所以我通過這樣做解決了這個問題。

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

然后它起作用了。 仍然不知道為什么這在REST Client中不起作用,所以如果有人知道,請告訴我!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM