http出站网关URL中的路径参数。

问题描述 投票:0回答:1

我有一个xml,包括这个。

<channel id="myDataChannel"></channel>
<http:outbound-gateway 
    request-channel="myDataChannel"
    url="{url}/myApi/getData/{id}"
    expected-response-type="com.api.dto.Data"
    http-method="GET" 
    rest-template="myRestTemplate">
    <http:uri-variable name="url" expression="headers.url" />
</http:outbound-gateway>

而在java代码中是这样的。

    MessagingTemplate myTemplate = new MessagingTemplate();
    Message<?> getDataReply = null;
    Data dataDto = null;

    Message<?> requestMsg = MessageBuilder.withPayload(requestDto)
            .build();

    getDataReply = template.sendAndReceive(myDataChannel, requestMsg);
    return dataDto = (Data) getDataReply.getPayload();

这里是我的问题,如何在java代码的URL中path id与payload,有一个额外的标签,我应该添加到XML的out-bound-gateway?

java spring spring-integration spring-integration-http
1个回答
0
投票

你的问题不清楚,但你需要这样的东西

Message<?> requestMsg = MessageBuilder.withPayload(requestDto)
        .setHeader("url", ...)
        .setHeader("id", ...)
        .build();

<http:uri-variable name="id" expression="headers.id" />

或者,如果id是有效载荷的一个属性

Message<?> requestMsg = MessageBuilder.withPayload(requestDto)
        .setHeader("url", ...)
        .build();

<http:uri-variable name="id" expression="payload.id" />
© www.soinside.com 2019 - 2024. All rights reserved.