[英]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.