我尝试在查询中使用访问令牌参数调用外部API,方法是从标题中获取该参数,但由于某种原因,它不起作用,API返回错误Access token not configured
。
但是当我在同一个字符串上调用log时,来自header的访问令牌似乎就在适当的位置。
我的路线中配置方法的代码:
from("direct:user_get")
.log("https://api.vk.com/method/users.get?access_token=${header.access_token}&v=5.131")
.to("https://api.vk.com/method/users.get?access_token=${header.access_token}&v=5.131");
调用FluentProducerTemplate
(实际令牌替换为“token_example”):
String userGetResponse = producerTemplate
.to("direct:user_get")
.withHeader("access_token", "token_example")
.request(String.class);
当我将token直接传递到.to()
调用本身时,一切正常,API返回有效响应。
1条答案
按热度按时间fbcarpbf1#
你需要使用
toD
,因为它是一个动态端点。所以你发送的是这个字符串${header.access_token}
,而不是头令牌。正常情况下,to不会转换URI,只会转换为D make this。请检查Docs
to用于向静态终结点发送消息。换句话说,to仅向同一终结点发送消息。
toD用于将消息发送到动态端点。动态端点由表达式按需计算。默认情况下,简单表达式用于计算动态端点URI。