当前位置: 首页 > 知识库问答 >
问题:

如何用Apache Camel转储HTTP组件发送的HTTP正文和头

郑俊彦
2023-03-14
   from('direct:abc').
   setHeader(Exchange.HTTP_URI, constant("${config.gnutch.solr.coreUrl}/select")).
   setHeader(Exchange.HTTP_QUERY, constant("q=${q}&wt=xml")).
   setHeader(Exchange.CONTENT_TYPE, constant('application/xml')).
   setHeader(Exchange.HTTP_METHOD, constant('GET')).
   setBody(constant(null)).
   to("http://null")

这是Groovy中的骆驼DSL代码。有可能吗?

共有1个答案

戚宏浚
2023-03-14

你有没有试过

from("direct:abc")
 .to("http://domain.com/")
 .to("log:DEBUG?showBody=true&showHeaders=true")

HTTP组件文档还建议您可以从exchange中提取HttpServletRequest,

HttpServletRequest request = exchange.getIn().getBody(HttpServletRequest.class);

然后,您可以执行另一种操作,

from("direct:abc").to("http://domain.com").process(new Processor() {
    public void process(Exchange exchange) throws Exception {
        HttpServletRequest request = exchange.getIn().getBody(HttpServletRequest.class);
        // Log request parameters
    }
});
 类似资料:
  • 问题内容: 我需要发送带有一些修改后的标头的Http请求。在尝试寻找与Selenium 2 的Selenium RC等效的方法几个小时后,我放弃了JavaScript并将其用于我的目的。我期望这会容易得多! 有人知道更好的方法吗? 这是我所做的: javascript.js MyTest.java 注意:为了简化本文,我已经编辑了原始代码。希望我没有介绍任何错误! 问题答案: 不幸的是,您无法使用

  • 问题内容: 我正在使用Java开发RESTful Web服务。如果出现问题,我需要一种将错误消息发送给客户端的好方法。 根据Javadoc的规定, “由于message参数含义不明确 ,因此不建议使用 ”。 有没有设置状态消息或响应的“ 原因短语 ”的首选方法?该方法不这样做。 编辑:为了澄清,我想修改HTTP状态行,即不是主体内容。具体来说,我想发送类似的回复。 问题答案: 我认为任何RESTf

  • 我尝试了许多解决方案,但它仍然给我同样的错误: “未处理的异常:类型'\u InternalLinkedHashMap }

  • 问题内容: 我正在开发使用不同服务其余部分的图形界面(用Java编写)。我必须调用这样的服务: 呼叫服务: 当我从Angularjs服务文件中请求时,如果服务具有Content-Type = multipart / form- data,则会收到错误400(错误请求) 如果服务的Content-Type =“ application / x-www-form-urlencoded; charset

  • 问题内容: 如何发送带有HTTP Get请求的数组? 我正在使用GWT客户端发送请求。 问题答案: 因为尽管BalusC的回答被标记为正确,但它并不完全正确。 你必须像这样向foo添加查询,添加“ []”:

  • 我有一个javaScript代码,其中我发送了带有一些参数的http post。Post参数是一个类似于以下内容的json: 在JavaScript中,我只是打开request、设置头和发送参数。Post请求如下所示: 现在我需要在Java中进行相同的调用(由于一些内部POC需求)。为此,我做了以下几点: 但这给了我错误。 提前道谢。