Предел размера тела запроса POST клиента Джерси - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть технический документ от наших клиентов, в котором говорится, что их сервер будет принимать POST-запрос с объемом сообщения до 2,5 МБ. Я написал пакетный процессор, который берет некоторые данные и генерирует из них куски JSON с заранее установленным пределом размера. Затем он последовательно отправляет их на сервер, используя некоторые логи повторных попыток c et c ..

Если я установлю ограничение размера в 2 000 000 байт, все будет работать нормально. Если я установлю это 2 400 000 байтов, процессор bach бросает следующий стек. (Трудно было сказать, имели ли они в виду десятичные или двоичные «МБ», поэтому я старался не рисковать, а также оставить большой запас для ошибок)

Exception in thread "main" com.sun.jersey.api.client.ClientHandlerException: java.io.IOException: Error writing to server
    at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:155)
    at com.sun.jersey.api.client.Client.handle(Client.java:652)
    at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
    at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
    at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:570)
    at ***************.BatchProcessor.sendBatchRequest(BatchProcessor.java:55)

Есть ли какое-то ограничение для размер может иметь тело клиента Джерси? Могу ли я изменить это? Кажется, это проблема отправляющей стороны.

Я отправил пакет на простой тестовый сервер, который я реализовал с использованием.

import com.sun.net.httpserver.HttpServer;

Возможно, у него есть какие-то ограничения. Но там не было ничего подозрительного, и сообщение об ошибке, кажется, не соответствует клиенту. Есть идеи?

...