簡體   English   中英

okhttp3 - 413 請求實體太大

[英]okhttp3 - 413 Request Entity Too Large

當我的系統使用 okhttp3 發送 http 請求時,會出現以下問題:413 Request Entity Too Large

我想知道如何在 okhttp3 請求中設置最大大小,或者是否有針對此問題的其他解決方案。

public static String post(String url, String json) throws IOException {
    OkHttpClient client = new OkHttpClient().newBuilder()
            .readTimeout(1, TimeUnit.MINUTES)
            .build();
    RequestBody body = RequestBody.create(JSON, json);
    Request request = new Request.Builder()
    .header("Authorization", authKey)
    .url(url)
    .post(body)
    .build();
    try (Response response = client.newCall(request).execute()) {
        if(response.code() != 200) {
            return "request error";
        }
        return response.body().string();
    }
}

這實際上與代碼無關,而是要將數據發送到的服務器對請求有效負載大小有限制。 有關該錯誤的更多信息,請參見: HTTP響應狀態代碼413:有效負載過大

如果您控制服務器,則可以調整此設置。 此處可以找到針對幾個常見服務器(Apache,NGINX,IIS)修復此錯誤的示例。

如果您不受控制,則可能需要查看用於其他上傳數據方式的服務的API /文檔。 對於該特定用例,該服務可能僅對有效負載大小有嚴格限制。

這不是HTTP客戶端(okHttp)定義的限制,而是服務器限制。

基本上,您所請求的服務器不接受大型請求主體。 我不知道它是否是公共API,但您應該檢查他們的文檔以查看您的請求出了什么問題,或者如果您確定實現正確,則應該與主機聯系。

謝謝你們。 我錯了,我找到了解決方案並已在服務器中修復。

暫無
暫無

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

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