2012-09-26 1 views
4

Клиент Android отправляет запрос на сервер.Получить файл изображения из HTTP Response Body

HttpClient httpclient = new DefaultHttpClient(); 
HttpPost httppost = new HttpPost("http://test.com/test"); 
HttpResponse response = httpclient.execute(httppost); 

, а затем получил ответ от сервера, как показано ниже

HTTP/1.1 200 OK 
Server: Apache-Coyote/1.1 
Date: Wed, 26 Sep 2012 10:59:35 GMT 
Content-Type: multipart/form-data; type="image/jpeg"; boundary="simple_boundary"; start="<image>"; start-info="image/jpeg" 
Transfer-Encoding: chunked 

2000 

--simple_boundary 

Content-Type: image/jpeg 
Content-Transfer-Encoding: binary 
Content-ID: <image> 

......JPEG Binary Code Here..... 

--simple_boundary 

Как я могу получить изображение (двоичный) от ответа.

InputStream is = response.getEntity().getContent(); 

(InputStream) содержит информацию о границе и содержании.

--simple_boundary 

Content-Type: image/jpeg 
Content-Transfer-Encoding: binary 
Content-ID: <image> 

......JPEG Binary Code Here..... 

--simple_boundary 

Как я могу получить чистые двоичные данные изображения. А можно?

ответ

1
Bitmap bitmap = BitmapFactory.decodeStream((InputStream) response.getEntity().getContent()); 
+0

Не работает. InputStream содержит не только двоичные данные, но и информацию о содержимом. –

0

Содержимое запроса разделено и закодировано, поэтому с ним легко справиться.

Я использовал Apache Commons FileUpload лет назад для обработки такого запроса (e.i. multipart), эта библиотека значительно упростила процесс.

В разделе getting started вы можете найти несколько примеров.