okhttp3 - 413 Запрос слишком большой - PullRequest
0 голосов
/ 26 декабря 2018

Когда моя система отправляет http-запрос с использованием okhttp3, возникает следующая проблема: 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();
    }
}

Ответы [ 3 ]

0 голосов
/ 26 декабря 2018

Это на самом деле не проблема с вашим кодом, скорее, сервер, на который вы отправляете данные, имеет ограничение на размер полезной нагрузки запроса.Для получения дополнительной информации об ошибке см .: Код состояния ответа HTTP 413: Слишком большая полезная нагрузка

Если вы контролируете сервер, вы можете изменить этот параметр.Примеры исправления этой ошибки для пары общих серверов (Apache, NGINX, IIS) можно найти здесь .

Если вы не контролируете ситуацию, вы можете посмотреть на API/ документация службы, которую вы используете для других способов загрузки данных.Служба может просто иметь строгие ограничения на размер полезной нагрузки для этого конкретного варианта использования.

0 голосов
/ 26 декабря 2018

Спасибо всем.Я ошибся, нашел решение и исправил на своем сервере.

0 голосов
/ 26 декабря 2018

Это не предел, определенный вашим HTTP-клиентом (okHttp), это ограничение сервера.

По сути, запрашиваемый вами сервер не принимает большие тела запросов.Я не знаю, является ли это общедоступным API или нет, но вы должны проверить их документацию, чтобы увидеть, что не так с вашим запросом, или если вы уверены, что вы правильно реализовали, вам следует связаться с хостом.

...