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

89
8

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

спросил(а) 2021-01-19T14:28:42+03:00 6 месяцев, 1 неделя назад
1
Решение
110

Здесь у вас есть пример, чтобы сделать объявление с помощью интерфейса @Rest и здесь у вас есть пример для этого, используя 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();
}
}
}


ответил(а) 2021-01-19T14:28:42+03:00 6 месяцев, 1 неделя назад
45

Попробуйте следующее:


   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, я думаю, что последнего здесь нет, посмотрите в другом месте.

ответил(а) 2021-01-19T14:28:42+03:00 6 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема