【发布时间】:2016-12-09 01:42:46
【问题描述】:
我有一个正在发出 HTTP POST 请求的 apache 骆驼路由,即
from(...).setHeader(Exchange.HTTP_METHOD, constant(POST)).to("http4://myUrl?...");
请求 URL 包括查询参数(我知道对于 POST 来说不常见,但我在这里别无选择),我需要从存储在正文中的交换详细信息中填充这些参数。
即body 就是这样的 POJO:
public class Params {
String param1;
int param2;
....
//etc. etc. including getters and setters
}
其中每个字段要么是原语要么是字符串,并且直接引用等效的查询参数:
http4://myUrl?param1=...¶m2=...&...
有没有一种方法可以避免手动定义 URL 上的每个参数,而是自动映射交换主体以查询正在发出的请求的参数?
我需要这样做的原因是一些查询参数是可选的,应该根据交换体的内容来填充。
【问题讨论】:
-
可以设置header Exchange.HTTP_QUERY,查询参数用&分隔
-
这仍然是手动的,我想知道是否有一种方法可以将对象映射到正文以查询参数,而无需在代码中指定每个参数。如果不是,那是一种很好的方法,谢谢。
-
不,没有将消息正文字段自动映射到查询参数。
-
感谢克劳斯(又名骆驼神谕),如果您想添加上述两个 cmets 作为正确答案,如果您愿意,我会将其标记为接受赏金。
标签: post apache-camel query-parameters