2013-08-22 42 views
2

我使用android批註與服務器進行通信。在其中一個API調用中,我需要發送一些文本數據和一個圖像,例如,從圖庫中。Android註釋REST發送圖像

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

如何將MultipartForm與圖像一起附加發布請求?

回答

1

只需使用正確的彈簧轉換器:FormHttpMessageConverter

但是,該轉換器僅接受MultiValueMap作爲方法參數。請看看這兩個問題:#652#660

如果你真的想使用任何對象作爲參數,你必須實現你自己的自定義FormHttpMessageConverter這將通過使用反射來處理。

1

DayS是對的。一個AS報價,你必須包括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); 

}