Ich konnte eine GET-Anfrage mit Apache Camel an einen REST-Dienst senden und versuche jetzt, eine POST-Anfrage mit einem JSON-Körper mit Apache Camel zu senden. Ich konnte nicht herausfinden, wie der JSON-Body hinzugefügt und die Anfrage gesendet wird. Wie kann ich einen JSON-Body hinzufügen, die Anfrage senden und den Antwortcode erhalten? DiesePOST-Anfrage mit Apache Camel senden
Antwort
ist, wie Sie es tun können:
from("direct:start")
.setHeader(Exchange.HTTP_METHOD, constant("POST"))
.to("http://www.google.com");
Aktuelle Camel Exchange Körper wird an die URL Endpunkt erhalten VERÖFFENTLICHT.
Unten finden Sie eine Beispiel-Route, die sendet (alle 2 Sekunden) die JSON, mit POST-Methode an den Server, in dem Beispiel ist es localhost: 8080/Gruß. Es gibt auch eine Möglichkeit, die Antwort zu erhalten:
from("timer://test?period=2000")
.process(exchange -> exchange.getIn().setBody("{\"title\": \"The title\", \"content\": \"The content\"}"))
.setHeader(Exchange.HTTP_METHOD, constant("POST"))
.setHeader(Exchange.CONTENT_TYPE, constant("application/json"))
.to("http://localhost:8080/greeting")
.process(exchange -> log.info("The response code is: {}", exchange.getIn().getHeader(Exchange.HTTP_RESPONSE_CODE)));
Normalerweise ist es keine gute Idee, json manuell vorzubereiten. Sie können z.B.
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-gson</artifactId>
</dependency>
, um das Marshalling für Sie durchzuführen. Vorausgesetzt, dass Sie eine Gruß Klasse definiert haben Sie die Route mit dem Entfernen des ersten Prozessors ändern können und den folgenden Code verwenden, statt:
.process(exchange -> exchange.getIn().setBody(new Greeting("The title2", "The content2")))
.marshal().json(JsonLibrary.Gson)
Weiterführende Literatur: http://camel.apache.org/http.html Es ist erwähnenswert, dass es auch ist http4 Komponente (sie verwenden unterschiedliche Version von Apache HttpClient unter der Haube).
- 1. Microservice mit Apache Camel
- 2. Apache Camel Integration mit Elasticsearch
- 3. Apache Camel - SedaEndpoint
- 4. Apache Camel: Covert JSON zu einem POJO mit Camel Methoden
- 5. Apache Camel mit LinkedIn Api
- 6. Zip-Dateien mit Apache Camel
- 7. Strange Apache Camel Exception
- 8. Apache Camel MQXAQueueConnectionFactory
- 9. Apache Camel RedisIdempotentRepository Konfiguration
- 10. Apache Camel Event Store
- 11. Interzeptoren und Apache Camel
- 12. Apache Camel unmarshalling Daten
- 13. Apache Camel Konfiguration
- 14. Apache Camel MultiCasting - InvalidPayloadException
- 15. Apache Camel Testing Route
- 16. Apache Camel Split bereichern
- 17. Binärdatei Korruption über HTTP mit Apache Camel
- 18. Clustered Apache Camel
- 19. Apache Camel XML Validator
- 20. Apache Camel Multithread Verarbeitung
- 21. Apache Camel bedingten Routing
- 22. Apache Camel Komponente Parameter
- 23. Apache Camel Routing
- 24. Kündigungsnachricht in Apache Camel
- 25. Apache Camel Produzenten und Verbraucher
- 26. Legendes Apache Camel Dynamisches Routing
- 27. Apache Camel - Quartz2 mit Mybatis mit onConsume
- 28. Timer mit Quartz und Apache Camel verwenden
- 29. Apache Camel Dateikomponente mit dynamischem Pfad
- 30. Große CSV mit Apache Camel + Aggregator