我使用 android 注释与服务器通信。在其中一个 api 调用中,我需要从图库中发送一些文本数据和图像。
@Post("/items/addItem.php")
String addItem(Protocol protocol);
如何在发布请求中附加带有图像的 MultipartForm?
我使用 android 注释与服务器通信。在其中一个 api 调用中,我需要从图库中发送一些文本数据和图像。
@Post("/items/addItem.php")
String addItem(Protocol protocol);
如何在发布请求中附加带有图像的 MultipartForm?
只需使用正确的 Spring 转换器:FormHttpMessageConverter。
但是,此转换器仅接受MultiValueMap作为方法参数。请看这两个问题:#652和#660。
如果您真的想使用任何对象作为参数,则必须实现自己的自定义FormHttpMessageConverter
,该自定义将通过使用反射来处理。
DayS 是对的。作为引用,您必须在转换器数组内的 Rest Interface 定义中包含 FormHttpMessageConverter:
@Rest(rootUrl = "http://api.yourapp.com", converters = {
MappingJacksonHttpMessageConverter.class,
StringHttpMessageConverter.class, FormHttpMessageConverter.class })
public interface YourAppApiClient {
@Post("/items/addItem.php")
void getCustomerInformation(MultiValueMap formfields);
}
-完全同意上述答案,但要使用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);
}