我需要创建一条路线(或不仅仅是一条路线),它将执行以下操作:
- 从 .txt 文件中读取一些 id(由 标记
/n
) - 对于每个 id,我将向 url (
http://myexample.com/something/**id**
)发出 GET 请求 - 每个请求都会给我带来一个 JSON
- JSON 将被解组为 XML
因此,我的 file.txt 中的每个 id 都需要一个 JSON 文件。如果我有 10 个 ID,我将从该 url 获得 10 个 JSON 文件。我制作了一个组件,它将我从文件夹中取出 JSON 并将它们解组为 XML。另外,我标记了我的file.txt
.
问题是我不知道如何为每个 id 获取一个 JSON 文件,更准确地说,如何动态转换我的 url?
我的代码是:
<camel:route id="getRequestForEachId">
<camel:from uri="file:src/main/resources/idList?noop=true" />
<camel:split>
<camel:tokenize token="\n" />
<camel:to uri="stream:out" />
<camel:recipientList>
<camel:simple>
http://myexample.com/something/${body}
</camel:simple>
</camel:recipientList>
<camel:to uri="file:src/main/resources/jsonMandatFromReq" />
<!--from this will take my json->xml component-->
</camel:split>
</camel:route>
使用此代码,我收到 405 错误:
HTTP operation failed invoking http://google.com/something/3 with statusCode: 405
那3
是从file.txt
ids 开始的。所以 url 以某种方式构建,但我以异常结束。
我希望得到具体的帮助,而不是骆驼网站上动态网址的网址。非常感谢!
乐:
下面的答案解决了我的主要问题,但我现在有另一个问题。GET 方法不会停止发出请求。
我只想对每个 id 有一个请求,为此我将为每个请求或 id 获取一个 JSON 文件。但我的路线是不断提出请求。具有 ids 的列表结束后,它会重新开始。所以我以一个 id 的许多 JSON 文件结束,而每个 id 只需要一个 JSON 文件。
我不想覆盖现有的 JSON 文件。我希望每个 ID 只有一个 GET 请求。我该如何解决这个问题?