You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache Camel:调用HttpComponent后如何从Exchange获取HttpRequest与HttpResponse

在Apache Camel中调用HttpComponent后获取HttpRequest和HttpResponse的方法

获取HttpRequest

调用HttpComponent前后,可通过两种方式获取HttpRequest:

  • 从Exchange属性中直接提取,使用Exchange.HTTP_REQUEST作为key,返回类型为org.apache.http.client.methods.HttpUriRequest
  • 将Exchange的In消息转换为org.apache.camel.component.http.HttpMessage,调用其getHttpRequest()方法

获取HttpResponse

调用HttpComponent完成后,HttpResponse可通过以下方式获取:

  • 从Exchange属性中提取,使用Exchange.HTTP_RESPONSE作为key,返回类型为org.apache.http.HttpResponse
  • 将In消息转换为HttpMessage后,调用getHttpResponse()方法

代码示例

from("direct:restendpoint").routeId("direct_restendpoint")
    .to("https://<URL_SERVICE>")
    .process(exchange -> {
        String responseCode = exchange.getIn().getHeader("CamelHttpResponseCode").toString();
        
        // 获取HttpRequest
        org.apache.http.client.methods.HttpUriRequest httpRequest = 
            exchange.getProperty(Exchange.HTTP_REQUEST, org.apache.http.client.methods.HttpUriRequest.class);
        
        // 或者通过HttpMessage获取HttpRequest
        // org.apache.camel.component.http.HttpMessage httpMessage = 
        //     exchange.getIn(org.apache.camel.component.http.HttpMessage.class);
        // org.apache.http.client.methods.HttpUriRequest httpRequest = httpMessage.getHttpRequest();
        
        // 获取HttpResponse
        org.apache.http.HttpResponse httpResponse = 
            exchange.getProperty(Exchange.HTTP_RESPONSE, org.apache.http.HttpResponse.class);
        
        // 或者通过HttpMessage获取HttpResponse
        // org.apache.http.HttpResponse httpResponse = httpMessage.getHttpResponse();
        
        // 后续操作示例:获取请求URL、响应头
        String requestUrl = httpRequest.getURI().toString();
        org.apache.http.Header[] responseHeaders = httpResponse.getAllHeaders();
    });

注意事项

  • 需确保引入Apache HttpComponents和Camel HttpComponent的相关依赖
  • 若使用Camel的ahc异步HttpClient组件,对应的请求/响应类型为AsyncHttpClientRequest和AsyncHttpClientResponse,需调整获取方式

内容的提问来源于stack exchange,提问作者stewchicken

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 17:40:57