Android httpclient - PullRequest
       3

Android httpclient

0 голосов
/ 30 декабря 2010

Как передать файл 50 МБ на веб-сервер с помощью httppost.При попытке передать файл выдает сообщение об ошибке памяти.мы можем использовать chuncked кодировку?как?дать некоторые фрагменты кода.

Спасибо.

Редактировать: Вот код:

InputStreamEntity reqEntity = new InputStreamEntity(new FileInputStream(f), -1);
reqEntity.setContentType("binary/octect-stream"); 
reqEntity.setChunked(true);
httppost.setEntity(reqEntity);

1 Ответ

4 голосов
/ 30 декабря 2010

Используйте InputStreamEntity, поскольку он не загружает весь файл в память.Сделайте что-то вроде этого:

HttpClient httpclient = new DefaultHttpClient();

HttpPost httppost = new HttpPost("http://localhost/upload");

File file = new File("/path/to/myfile");
FileInputStream fileInputStream = new FileInputStream(file);
InputStreamEntity reqEntity = new InputStreamEntity(fileInputStream, file.length());

httppost.setEntity(reqEntity);
reqEntity.setContentType("binary/octet-stream");
HttpResponse response = httpclient.execute(httppost);
HttpEntity responseEntity = response.getEntity();

if (responseEntity != null) {
  responseEntity.consumeContent();
}

httpclient.getConnectionManager().shutdown();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...