获取CamelHttpResponseCode = 400和HttpOperationFailedException

时间:2017-08-02 14:39:42

标签: java http apache-camel

我在标题中获得CamelHttpResponseCode = 400;身体是空的。 任何人都可以帮我找到背后的原因。

我正在向服务器发送json请求。 这是我的Http组件代码。

<camel:to uri="{{ServerUrl}}?httpClient.soTimeout=70000&amp;bridgeEndpoint=true&amp;throwExceptionOnFailure=true;transferException=true"/> 
<log message="body  Got ${body}"/>
<log message="header Got ${headers}"/>

我注意到的一件事是当请求的长度小于2000时它起作用。 当请求的长度超过2000时,它总是失败。此请求也没有达到ServerUrl。

EN

1 个答案:

答案 0 :(得分:0)

在做了一些分析之后,我发现超过了标题的大小。 Header包含Exchange对象的HttpServletRequest中的所有表单元素。

要删除额外的标题,我在驼峰中设置请求正文时更改了以下代码。

将getIn()替换为getOut()解决了我的问题

    exchange.getIn().setBody(JsonUtils.convertToJson(Object));  // Not Working
    exchange.getOut().setBody(JsonUtils.convertToJson(Object)); // It Works