2016-10-24 2 views
0

Я использую apache HttpClient для загрузки файлов прошивки (.bin). Когда я загружаю такой файл размером 37 МБ, я получаю сообщение об ошибке: Сброс соединения с помощью ошибки peer: socket write. Я не знаю, как его решить. Но когда я пытаюсь использовать другие файлы меньшего размера (например .txt или .bin), ошибок нет.Загрузка HttpClient: сброс соединения с помощью peer: ошибка записи сокета

Вот некоторые из них связаны код:

HttpPost request = new HttpPost(httpURL); 
request.addHeader("Content-Type", "multipart/form-data"); 
request.addHeader("Accept", "multipart/form-data"); 

File file = new File(filePath); 
FileBody fileBody = new FileBody(file, ContentType.MULTIPART_FORM_DATA); 

MultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder.create(); 
multipartEntityBuilder.addPart("upgradeFile", fileBody); 
multipartEntityBuilder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); 
HttpEntity httpEntity = multipartEntityBuilder.build(); 

request.setEntity(httpEntity); 
CloseableHttpResponse response = httpClient.execute(request); 

PS: Я не могу прикасаться к стороне сервера.

+0

Тогда вы не можете решить. Сервер закрыл соединение, по-видимому, исходя из размера загрузки. – EJP

+0

@EJP Я так думаю. Но что меня смутило, у сервера есть официальная веб-страница (клиентская сторона), я могу загрузить большой файл с этого сайта, но в моем коде я не могу. – Silver

ответ

0

Похоже, проблема связана с конфигурацией apache/php на стороне сервера. Вероятно, администратор сервера должен изменить параметры upload_max_filesize и post_max_size в файле php.ini. Вот ссылка на SO, чтобы сделать это:

PHP change the maximum upload file size

+0

К сожалению, я не могу прикоснуться к серверной стороне. – Silver

Смежные вопросы