当我的系统使用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();
}
}
发布于 2018-12-26 12:52:43
这实际上不是您的代码的问题,而是您要将数据发送到的服务器对请求有效负载大小有限制。有关该错误的详细信息,请参阅:HTTP Response Status Code 413: Payload too large
如果您可以控制服务器,则可以调整此设置。可以在here中找到一些常见服务器(Apache、NGINX、IIS)修复此错误的示例。
如果您不受控制,您可能需要查看您正在使用的服务的API /文档,以用于其他上传数据的方式。该服务可能只是对该特定用例的有效负载大小有严格的限制。
发布于 2018-12-26 12:46:08
这不是您的超文本传输协议客户端(okHttp)定义的限制,而是服务器限制。
基本上,您请求的服务器不接受大的请求体。我不知道它是否是公共API,但你应该查看他们的文档,看看你的请求出了什么问题,或者如果你确定你的实现是正确的,你应该联系主机。
https://stackoverflow.com/questions/53932036
复制相似问题