我目前正在尝试使用Apache Camel及其Jetty组件从以下URL获取JSON-Response:
此时,我有以下代码段:
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-Response?
答案 0 :(得分:1)
这个问题在评论中得到了解决。
问题是指定的请求方法标头错误。请求方法应使用.setHeader(Exchange.HTTP_METHOD, simple("GET"))
指定。在此更改后,路线有效。
但是,如Jetty component documentation中所述,不推荐使用jetty组件作为生产者。对于制作人,建议使用HTTP component或HTTP4 component或Netty4 HTTP component。
使用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}");