Apache Camel 将主体交换为 URI 查询参数
Apache Camel exchange body to URI query parameters
我有一个正在发出 HTTP POST 请求的 apache camel 路由,即
from(...).setHeader(Exchange.HTTP_METHOD, constant(POST)).to("http4://myUrl?...");
请求 URL 包括查询参数(我知道 POST 不常见,但我在这里别无选择)我需要从存储在正文中的交换详细信息中填充。
即主体是一个 POJO,如下所示:
public class Params {
String param1;
int param2;
....
//etc. etc. including getters and setters
}
其中每个字段都是原始类型或字符串,并直接引用等效的查询参数:
http4://myUrl?param1=...¶m2=...&...
有没有一种方法可以避免在 URL 上手动定义每个参数,而是自动将交换主体映射到正在发出的请求的查询参数?
我需要这样做的原因是一些查询参数是可选的,应该根据交换主体的内容进行填充。
您可以设置 header Exchange.HTTP_QUERY 将查询参数分开。
而且无法将消息正文的字段自动映射到 URI 参数(不包含魔法)。您需要构建一些代码来计算使用 &
分隔值的 URI 查询,并将其设置为 HTTP_QUERY
header.
我有一个正在发出 HTTP POST 请求的 apache camel 路由,即
from(...).setHeader(Exchange.HTTP_METHOD, constant(POST)).to("http4://myUrl?...");
请求 URL 包括查询参数(我知道 POST 不常见,但我在这里别无选择)我需要从存储在正文中的交换详细信息中填充。
即主体是一个 POJO,如下所示:
public class Params {
String param1;
int param2;
....
//etc. etc. including getters and setters
}
其中每个字段都是原始类型或字符串,并直接引用等效的查询参数:
http4://myUrl?param1=...¶m2=...&...
有没有一种方法可以避免在 URL 上手动定义每个参数,而是自动将交换主体映射到正在发出的请求的查询参数?
我需要这样做的原因是一些查询参数是可选的,应该根据交换主体的内容进行填充。
您可以设置 header Exchange.HTTP_QUERY 将查询参数分开。
而且无法将消息正文的字段自动映射到 URI 参数(不包含魔法)。您需要构建一些代码来计算使用 &
分隔值的 URI 查询,并将其设置为 HTTP_QUERY
header.