2013-08-22 2 views
2

Я использую андроиды андроида для связи с сервером. В одном из вызовов api мне нужно отправить некоторые текстовые данные и изображение, скажем, из галереи.Аннотации Android REST отправить изображение

@Post("/items/addItem.php") 
String addItem(Protocol protocol); 

Как подключить MultipartForm с изображением вместе с запросом на отправку?

ответ

1

Просто используйте правый преобразователь пружины: FormHttpMessageConverter.

Однако этот преобразователь принимает только MultiValueMap в качестве параметра метода. Пожалуйста, ознакомьтесь с этими двумя вопросами: #652 и #660.

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

1

DayS - это право. В качестве цитаты, вы должны включить FormHttpMessageConverter в вашем определении интерфейса Rest внутри массива преобразователей:

@Rest(rootUrl = "http://api.yourapp.com", converters = { 
       MappingJacksonHttpMessageConverter.class, 
       StringHttpMessageConverter.class, FormHttpMessageConverter.class }) 
public interface YourAppApiClient { 

    @Post("/items/addItem.php") 
    void getCustomerInformation(MultiValueMap formfields); 
} 
0

- суммарно согласен с выше ответы, но для использования mappinjacksonhttpmessageconverter вы должны добавить другую библиотеку так если вы ДНТ хотите использовать его, вы можете использовать ниже пример

  • Или вы можете рассмотреть его в качестве другого примера также :)

@Rest(rootUrl = CommonUtils.BASE_URL, converters = {ByteArrayHttpMessageConverter.class, FormHttpMessageConverter.class, StringHttpMessageConverter.class})

public interface CustomRest extends RestClientErrorHandling{ 

    @Post(CommonUtils.pUrlLogin) 
    String _Login(MultiValueMap<String, Object> multiValueMap); 

    @Post(CommonUtils.pUrlSignUp) 
    String _SignUp(MultiValueMap<String, Object> multiValueMap); 

}

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