[英]Getting 400 - Bad Request Java Client
我正在嘗試使用小型 Java 程序發出請求,但收到 400 - Bad Request 作為響應:
URI uri = new URIBuilder().setScheme("https")
.setHost("somehost.com")
.setPath("/API/v1/export").build();
HttpPost post = new HttpPost(uri);
post.setHeader("X-API-ID", "myId");
post.setHeader("Accept", "application/json");
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("format", "csv"));
params.add(new BasicNameValuePair("userId", "userId"));
post.setEntity(new UrlEncodedFormEntity(params));
JsonNode responseJson = sendResponseEngineRequest(post);
此responseJson返回以下值:
{"meta":{"httpStatus":"400 - Bad Request","error":{"errorMessage":"Invalid Content-Type. expected=application/json found=application/x-www-form-urlencoded", "errorCode":"RP_0.1"}}}
提前致謝。
答案就在你得到的錯誤中。
您指定您將只接受post.setHeader("Accept", "application/json");
並且錯誤告訴你你請求的是found=application/x-www-form-urlencoded
如果您可以控制請求數據的端點,請將其更改為 application/json。 如果你不改變post.setHeader("Accept", "application/json");
到post.setHeader("Accept", "application/x-www-form-urlencoded");
由於這是一個 POST 請求,您可能需要同時提供Accept
和Content-Type
標頭。
Accept:
您期望收到的內容。 Content-Type:
您發送到服務器的內容
post.setHeader("Accept", "application/json");
post.setHeader("Content-Type", "application/json");
在我的程序中,我也遇到了這個錯誤,發現鏈接不接受重復值。
所以請檢查您的鏈接它可能不接受該鏈接中已有的任何重復參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.