GET-запрос с компонентом Apache Camel + Jetty - PullRequest
0 голосов
/ 05 мая 2018

В настоящее время я пытаюсь получить JSON-ответ по следующему URL-адресу, используя Apache Camel с его компонентом Jetty:

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-ответ?

1 Ответ

0 голосов
/ 05 мая 2018

Этот вопрос был решен в комментариях.

В вопросе неправильно указан заголовок метода запроса. Метод запроса должен быть указан с .setHeader(Exchange.HTTP_METHOD, simple("GET")). После этого изменения маршрут работает.

Но использование компонента Jetty в качестве производителя не рекомендуется, как указано в Документация компонента Jetty . Для производителя рекомендуется использовать компонент HTTP или компонент HTTP4 или компонент HTTP Netty4 .

Рабочий маршрут с компонентом 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}");
...