使用Spring-Integration将多部分/表单数据参数传递给RESTful Web服务

时间:2016-09-29 10:48:34

标签: spring-integration

我在项目中使用Spring Integration。我有类型POST的RESTful webservice,它接受multipart / form-data类型。我知道int-http:outbound-gateway可以用来执行web服务。

但我不知道将文件类型(multipart / form-data)传递给Message并在int-http:outbound-gateway中使用它们。

要想一想,以下是POSTMAN客户端的屏幕打印,其中传递了multipart / form-data类型参数。 enter image description here

我希望通过将参数合并到消息中,以相同的方式将参数传递给int-http:outbound-gateway。有关如何实现所需功能的任何想法?如果您需要任何其他信息,请与我们联系。

1 个答案:

答案 0 :(得分:1)

HttpRequestExecutingMessageHandler有以下代码:

else if (content instanceof Map) {
        // We need to check separately for MULTIPART as well as URLENCODED simply because
        // MultiValueMap<Object, Object> is actually valid content for serialization
        if (this.isFormData((Map<Object, ?>) content)) {
            if (this.isMultipart((Map<String, ?>) content)) {
                contentType = MediaType.MULTIPART_FORM_DATA;
            }
            else {
                contentType = MediaType.APPLICATION_FORM_URLENCODED;
            }
        }
    }

因此,您需要的只是Map<String, ?>,它完全反映了HTTP表单。

Multipart Http Sample也可以为您提供帮助。