okhttp3 - 413 请求实体太大
okhttp3 - 413 Request Entity Too Large
当我的系统使用 okhttp3 发送 http 请求时,出现以下问题:
413 请求实体太大
我想知道如何在 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 客户端 (okHttp) 定义的限制,它是服务器限制。
基本上,您请求的服务器不接受大型请求体。
我不知道它是否是 public API,但您应该检查他们的文档以查看您的请求有什么问题,或者如果您确定您实施正确,您应该联系主机。
这实际上不是您的代码的问题,而是您将数据发送到的服务器对请求负载大小有限制。有关该错误的更多信息,请参阅:HTTP Response Status Code 413: Payload too large
如果您控制着服务器,您可以调整此设置。可以找到为几个常见服务器(Apache、NGINX、IIS)修复此错误的示例
here.
如果您无法控制,您可能需要查看您正在使用的服务的 API/ 文档以了解上传数据的其他方式。该服务可能只是对该特定用例的有效负载大小有严格的限制。
当我的系统使用 okhttp3 发送 http 请求时,出现以下问题: 413 请求实体太大
我想知道如何在 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 客户端 (okHttp) 定义的限制,它是服务器限制。
基本上,您请求的服务器不接受大型请求体。 我不知道它是否是 public API,但您应该检查他们的文档以查看您的请求有什么问题,或者如果您确定您实施正确,您应该联系主机。
这实际上不是您的代码的问题,而是您将数据发送到的服务器对请求负载大小有限制。有关该错误的更多信息,请参阅:HTTP Response Status Code 413: Payload too large
如果您控制着服务器,您可以调整此设置。可以找到为几个常见服务器(Apache、NGINX、IIS)修复此错误的示例 here.
如果您无法控制,您可能需要查看您正在使用的服务的 API/ 文档以了解上传数据的其他方式。该服务可能只是对该特定用例的有效负载大小有严格的限制。