В документации ( 2.x ) приведен простой пример: (100% * POST):
from("direct:start")
.setHeader(Exchange.HTTP_METHOD, constant(org.apache.camel.component.http4.HttpMethods.POST))
.to("http4://www.google.com")
.to("mock:results");
При создании собственного простого маршрута на основе этого примера:
from("timer://test?fixedRate=true&period=1m")
.routeId("test")
.setHeader(Exchange.HTTP_METHOD, constant(org.apache.camel.component.http4.HttpMethods.GET))
.to("https4://somewhere/api/things/getthings")
.to("mock:results");
Затем кажется, что он игнорирует набор HTTP_METHOD, и вместо этого выполняет POST:
....>>> (test) setHeader[CamelHttpMethod, GET] --> https4://somewhere/api/things/getthings <<< Pattern:InOnly
....Sending to endpoint: https4://somewhere/api/things/getthings is intercepted and detoured to: Pipeline[[Channel[SetHeader(CamelHttpMethod, POST)]
....>>> https4://somewhere/api/things/getthings --> setHeader[CamelHttpMethod, POST]
....Executing http POST method: https://somewhere/api/things/getthings
Может быть потому, что раздел " Заголовки сообщений " в документации делает НЕ перечислять HTTP_METHOD?
Что означает, что приведенный пример является неточным?
Тем не менее, в разделе " Какой метод HTTP будет использоваться " ясно показано:
2. Use method provided in header (Exchange.HTTP_METHOD).
Так есть ли ошибка в моем .setHeader (.... GET)?
-
Я могу заставить его работать, добавив httpMethod к URI:
.to("https4://somewhere/api/things/getthings?httpMethod=GET")
Это не тот способ, которым я хочу решить проблему, потому что мои URI определены в XML например,
.to("somewhereGetThings")
для повторного использования на разных маршрутах, каждый из которых могут использоваться различные методы HTTP ...
-
Если вместо этого я использую причал:
.to("jetty:https://webapi.netcare.co.za/api/MedicalAid/GetMedicalAids")
, это сделает GET без m нам вообще нужно установить setHeader ().
-
- Чего мне не хватает?
- Должен ли я не использовать http4 для совершения звонков, чтобы получить данные с конечных точек REST?
Я на верблюде 2.24.1