0

我需要创建一条路线(或不仅仅是一条路线),它将执行以下操作:

  1. 从 .txt 文件中读取一些 id(由 标记/n
  2. 对于每个 id,我将向 url ( http://myexample.com/something/**id**)发出 GET 请求
  3. 每个请求都会给我带来一个 JSON
  4. 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.txtids 开始的。所以 url 以某种方式构建,但我以异常结束。

我希望得到具体的帮助,而不是骆驼网站上动态网址的网址。非常感谢!

乐:

下面的答案解决了我的主要问题,但我现在有另一个问题。GET 方法不会停止发出请求。

我只想对每个 id 有一个请求,为此我将为每个请求或 id 获取一个 JSON 文件。但我的路线是不断提出请求。具有 ids 的列表结束后,它会重新开始。所以我以一个 id 的许多 JSON 文件结束,而每个 id 只需要一个 JSON 文件。

我不想覆盖现有的 JSON 文件。我希望每个 ID 只有一个 GET 请求。我该如何解决这个问题?

4

0 回答 0