GET-Request with Apache Camel + Jetty Component



我目前正在尝试使用Apache Camel及其Jetty组件从以下URL获取JSON-Response:

https://maps.dwd.de/geoserver/dwd/ows?service=WFS&version=2.11.0&request=GetFeature&typeName=dwd:RBSN_RR&outputFormat=application%2Fjson

在这一点上,我有以下代码片段:

public void configure() {
from("direct:dwd")
.setHeader(Exchange.HTTP_PATH, simple("/geoserver/dwd/ows"))
.setHeader(Exchange.HTTP_QUERY, simple("service=WFS&version=2.11.0&request=GetFeature&typeName=dwd:RBSN_RR&outputFormat=application%2Fjson"))
.setHeader(Exchange.HTTP_PATH, simple("GET"))
.to("jetty:https://maps.dwd.de")
.log("${body}");
}

我应该怎么做才能获得 JSON 响应?

这个问题在评论中得到了解决。

有问题的请求方法标头指定不正确。应使用.setHeader(Exchange.HTTP_METHOD, simple("GET"))指定请求方法。在此更改后,路线将正常工作。

但是,使用 jetty 组件作为生产者已被弃用,如 Jetty 组件文档中所述。对于生产者,建议使用 HTTP 组件或 HTTP4 组件或 Netty4 HTTP 组件。

使用 HTTP 组件的工作路由:

from("direct:dwd")
.setHeader(Exchange.HTTP_PATH, simple("/geoserver/dwd/ows"))
.setHeader(Exchange.HTTP_QUERY, simple("service=WFS&version=2.11.0&request=GetFeature&typeName=dwd:RBSN_RR&outputFormat=application%2Fjson"))
.setHeader(Exchange.HTTP_METHOD, simple("GET"))
.to("https://maps.dwd.de")
.log("${body}");

相关内容

最新更新