Я использую OKHTTP 4.10.0 для отправки запросов из моего приложения Android на серверную часть.
Проблема возникает, когда я добавляю к своему запросу файл размером 92 МБ. Когда я добавляю этот файл, OKHTTP требуется около 1 минуты для отправки запроса на мой сервер.
Под «отправить запрос» я имею в виду время, которое проходит между запуском client.newCall(request).execute()< /code> и фактически отправляет запрос.
Кто-нибудь уже сталкивался или знает, почему отправка запроса занимает так много времени?
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