簡體   English   中英

獲得 400 - 錯誤請求 Java 客戶端

[英]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 請求,您可能需要同時提供AcceptContent-Type標頭。

Accept:您期望收到的內容。 Content-Type:您發送到服務器的內容

post.setHeader("Accept", "application/json");
post.setHeader("Content-Type", "application/json");

在我的程序中,我也遇到了這個錯誤,發現鏈接不接受重復值。

所以請檢查您的鏈接它可能不接受該鏈接中已有的任何重復參數。

暫無
暫無

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

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