2014-01-23 2 views
3

Я отправляю многостраничный запрос на сервер, который будет содержать изображение, а также пару строк. Я не нашел ни одного руководства о том, как это сделать, все, что я нашел, - это только то, как создавать пост, а также создавать и создавать и т. Д., Но ничего не по-разному. Я был бы рад за любую помощь, спасибоИспользование @Rest в Android Аннотации для создания многостраничного сообщения

ответ

5

Here у вас есть пример, чтобы сделать объявим его с помощью интерфейса @Rest и here у вас есть пример, чтобы сделать это с помощью Spring Android (используется AA для создания класса клиента)

Все вместе вы можете использовать что-то как это (этот код не тестировался):

@Rest(rootUrl = "http://mycompany.com/images", converters = FormHttpMessageConverter.class) public interface RestClient { @Post("/loadimage") void sendImage(MultiValueMap formfields); } @EActivity public class MyActivity extends Activity { @RestService RestClient restClient; //Inject it void sendImage(InputStream in) { MultiValueMap values = new org.springframework.util.LinkedMultiValueMap<String,Object>(); try { values.put("fileName", "a.jpg"); values.put("file", in); restClient.sendImage(values); } finally { in.close(); } } }

+0

Вторая ссылка, указывающая на примере Spring не ссылку, вы можете добавить ссылку? –

+0

Уже исправлено, извините. – jmvivo

+0

спасибо, это полезно :) –

0

Попробуйте это:

String url = "here_your_url"; 
    File image = new File("here_your_image's_route"); 

    HttpClient httpClient = new DefaultHttpClient(); 
    HttpPost httpPost  = new HttpPost(url); 

затем:

MultipartEntityBuilder multipartEntity = MultipartEntityBuilder.create(); 

    multipartEntity.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); 
    multipartEntity.addPart("image", new FileBody(image)); 

    final HttpEntity requestEntity = multipartEntity.build(); 

    //You can add more HttpEntity 
    httpPost.setEntity(requestEntity); 

    HttpResponse response = httpClient.execute(httpPost); 

    StatusLine statusLine = response.getStatusLine(); 
    int statusCode  = statusLine.getStatusCode(); 

    if(statusCode == HttpStatus.SC_OK) { 
     //everything is correct 
    } else { 
     //something has gone wrong 
    } 

я использую три библиотеки для этого:

  • httpcore-4.3. jar
  • httpmime-4.3.1.jar
  • апач-mime4j-0.4.jar

проверить, что: http://hc.apache.org/downloads.cgi, я думаю, что последний не здесь, искать в другом месте.

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