2

我使用 android 注释与服务器通信。在其中一个 api 调用中,我需要从图库中发送一些文本数据和图像。

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

如何在发布请求中附加带有图像的 MultipartForm?

4

3 回答 3

1

只需使用正确的 Spring 转换器:FormHttpMessageConverter

但是,此转换器仅接受MultiValueMap作为方法参数。请看这两个问题:#652#660

如果您真的想使用任何对象作为参数,则必须实现自己的自定义FormHttpMessageConverter,该自定义将通过使用反射来处理。

于 2013-08-22T09:58:42.110 回答
1

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);
}
于 2013-08-28T14:29:17.230 回答
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);

}

于 2015-11-18T08:32:10.330 回答