OKHTTP работает слишком долго, чтобы отправить запрос с вложением размером 92 МБ.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 OKHTTP работает слишком долго, чтобы отправить запрос с вложением размером 92 МБ.

Сообщение Anonymous »

Я использую OKHTTP 4.10.0 для отправки запросов из моего приложения Android на серверную часть.
Проблема возникает, когда я добавляю к своему запросу файл размером 92 МБ. Когда я добавляю этот файл, OKHTTP требуется около 1 минуты, чтобы отправить запрос на мой сервер.
Кто-нибудь уже сталкивался или знает, почему отправка запроса занимает так много времени?
P.S. Я приложил адаптированный код, аналогичный тому, который использую, но я действительно думаю, что это как-то связано с внутренним кэшированием или сжатием.
HttpUrl httpUrl = new HttpUrl.Builder()
.scheme(BackendEndpointConstants.PROTOCOL)
.host(BackendEndpointConstants.HOST)
.port(Integer.valueOf(BackendEndpointConstants.PORT))
.addPathSegment(BackendEndpointConstants.BASE_ENDPOINT)
.addPathSegment(BackendEndpointConstants.BASE_ENDPOINT_VERSION)
.addPathSegment(BackendEndpointConstants.ATTACHMENTS)
.build();

MultipartBody.Builder multipartBodyBuilder = new MultipartBody.Builder();
multipartBodyBuilder.addFormDataPart("fileDescription", JSONUtils.toString(uploadFileDescriptor));

File fileAttachment = basePath.resolve(fileAtachmentDTO.getPathToFile()).toFile();

multipartBodyBuilder.setType(MultipartBody.FORM);
multipartBodyBuilder.addFormDataPart("files[]", fileAttachment.getName(), RequestBody.create(fileAttachment, MediaType.parse(fileAttachmentDTO.getMimeType())));

MultipartBody multipartBody = multipartBodyBuilder.build();

Request request = new Request.Builder()
.addHeader("Authorization", "Bearer " + userApiToken)
.url(httpUrl)
.post(multipartBody)
.build();

OkHttpClient client = new OkHttpClient.Builder().writeTimeout(10, TimeUnit.MINUTES).readTimeout(1, TimeUnit.MINUTES).build();

try (okhttp3.Response response = client.newCall(request).execute()) {
String responseBody = response.body().string();

} catch (IOException e) {
Log.e(TAG, "Error", e);
throw new RuntimeException(e);

}



Подробнее здесь: https://stackoverflow.com/questions/793 ... attachment
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»