Использование @Rest в аннотациях Android для создания многостраничных сообщений

Я отправляю составной запрос на сервер, который будет включать изображение, а также пару строк. Я не нашел никакого руководства о том, как это сделать, все, что я нашел, это просто как сделать сообщение, получить и поставить и т. Д., Но ничего о составных частях. Буду рад любой помощи, спасибо


person SamAko    schedule 23.01.2014    source источник


Ответы (2)


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

All together you can use something like this (this code is not tested):

@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(); } } }

person jmvivo    schedule 24.01.2014
comment
Вторая ссылка, указывающая на пример Spring, не является ссылкой, можете ли вы добавить ссылку? - person SamAko; 25.01.2014

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

   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
  • apache-mime4j-0.4.jar

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

person huertazx    schedule 23.01.2014