骆驼路线 - 如何 return body 响应为 xml
Camel Routes - How to return the body response as xml
首先,我是 Spring Boot 的新手。
我不确定是否可行,但我想 return 来自外部 url 的 xml 响应。
我有这个代码:
@GetMapping("/myPage")
public void myPage() {
restConfiguration().host("localhost").port(8080);
from("timer://runOnce?repeatCount=1&delay=0")
.to("rest:get:/external-page")
.to("stream:out");
}
myPage() 是 returning XML(没关系)。所以,现在我想 return 同样 XML 当我这样做时:
curl http://localhost/myPage
我不确定我是否必须使用 .to("stream:out"),但是 curl 是 return结果为空。
有人可以帮助我吗?
提前致谢。
我找到了解决方案,这是如何获得响应的。
CamelContext context = new DefaultCamelContext();
context.addRoutes(new RouteBuilder() {
public void configure() {
restConfiguration().host(sHost).port(iPort);
from("direct:start")
.setHeader(Exchange.HTTP_METHOD,simple("GET"))
.to("rest:get:/external-page");
}
});
context.start();
ProducerTemplate template = context.createProducerTemplate();
String headerValue = "application/xml";
Map<String, Object> headers = new HashMap<String,Object>();
headers.put("Content-Type", headerValue);
Object result = template.requestBodyAndHeaders("direct:start", null, headers, String.class);
Exchange exchange = new DefaultExchange(context);
String response = ExchangeHelper.convertToType(exchange, String.class, result);
context.stop();
return response;
首先,我是 Spring Boot 的新手。 我不确定是否可行,但我想 return 来自外部 url 的 xml 响应。
我有这个代码:
@GetMapping("/myPage")
public void myPage() {
restConfiguration().host("localhost").port(8080);
from("timer://runOnce?repeatCount=1&delay=0")
.to("rest:get:/external-page")
.to("stream:out");
}
myPage() 是 returning XML(没关系)。所以,现在我想 return 同样 XML 当我这样做时:
curl http://localhost/myPage
我不确定我是否必须使用 .to("stream:out"),但是 curl 是 return结果为空。
有人可以帮助我吗? 提前致谢。
我找到了解决方案,这是如何获得响应的。
CamelContext context = new DefaultCamelContext();
context.addRoutes(new RouteBuilder() {
public void configure() {
restConfiguration().host(sHost).port(iPort);
from("direct:start")
.setHeader(Exchange.HTTP_METHOD,simple("GET"))
.to("rest:get:/external-page");
}
});
context.start();
ProducerTemplate template = context.createProducerTemplate();
String headerValue = "application/xml";
Map<String, Object> headers = new HashMap<String,Object>();
headers.put("Content-Type", headerValue);
Object result = template.requestBodyAndHeaders("direct:start", null, headers, String.class);
Exchange exchange = new DefaultExchange(context);
String response = ExchangeHelper.convertToType(exchange, String.class, result);
context.stop();
return response;