|
此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Integration 6.4.0! |
HTTP 出站组件
本节描述了 Spring 集成的 HTTP 出站组件。
用HttpRequestExecutingMessageHandler
要配置HttpRequestExecutingMessageHandler中,编写类似于以下内容的 bean 定义:
<bean id="httpOutbound"
class="org.springframework.integration.http.outbound.HttpRequestExecutingMessageHandler">
<constructor-arg value="http://localhost:8080/example" />
<property name="outputChannel" ref="responseChannel" />
</bean>
此 bean 定义通过委托给RestTemplate.
该模板反过来又委托给HttpMessageConverter实例从Message有效载荷。
您可以配置这些转换器以及ClientHttpRequestFactory实例,如下例所示:
<bean id="httpOutbound"
class="org.springframework.integration.http.outbound.HttpRequestExecutingMessageHandler">
<constructor-arg value="http://localhost:8080/example" />
<property name="outputChannel" ref="responseChannel" />
<property name="messageConverters" ref="messageConverterList" />
<property name="requestFactory" ref="customRequestFactory" />
</bean>
默认情况下,HTTP 请求是使用SimpleClientHttpRequestFactory,它使用 JDKHttpURLConnection.
还支持通过以下方式使用 Apache Commons HTTP ClientCommonsClientHttpRequestFactory,您可以注入它(如前所述)。
| 对于出站网关,网关生成的回复消息包含请求消息中存在的所有消息标头。 |
使用 Cookie
基本的 cookie 支持由transfer-cookies属性。
当设置为true(默认值为false)、一个Set-Cookie在响应中从服务器收到的标头将转换为Cookie在回复消息中。
然后,此标头将用于后续发送。
这可实现简单的有状态交互,例如:
…→logonGateway→…→doWorkGateway→…→logoffGateway→…
如果transfer-cookies是false任何Set-Cookie收到的标头保持为Set-Cookie,并在后续发送时被丢弃。
|
空响应正文
HTTP 是一种请求-响应协议。
但是,响应可能没有正文,只有标头。
在这种情况下, |
|
预期响应类型
进一步说明空响应正文,如果响应确实包含正文,则必须提供适当的 |
从版本 5.5 开始,HttpRequestExecutingMessageHandler暴露一个extractResponseBody标志(即true)以仅返回响应正文,或返回整个ResponseEntity作为回复消息有效负载,独立于提供的expectedResponseType.
如果ResponseEntity,则忽略此标志,并且整个ResponseEntity返回。