我正在尝试从http出站网关发送此字符串“de caisseaété enregistr *** *** ***”。此字符串包含法语字符(é)。我正在获取响应代码错误为400(错误请求)
然而,当我从休息简易客户端框架尝试相同的时候,我得到了一个成功代码(200)。
我的spring集成配置中是否缺少某些内容。 ?
分享配置
<int-http:outbound-gateway id="xtifygateway"
request-channel="xtifyrequestchannel" request-factory="requestFactory"
url="${xtifyUrl}" http-method="POST">
</int-http:outbound-gateway>
<int:header-enricher input-channel="requestchannel"
output-channel="xtifyrequestchannel">
<int:header
name="Content-Type"
value="application/json"/>
</int:header-enricher
<bean id="requestFactory"
class="org.springframework.http.client.SimpleClientHttpRequestFactory">
<property name="connectTimeout" value="${timeout}" />
<property name="readTimeout" value="${timeout}" />
</bean>
答案 0 :(得分:1)
您应该尝试设置字符集
<int-http:outbound-gateway id="xtifygateway"
request-channel="xtifyrequestchannel" request-factory="requestFactory" charset="UTF-8"
url="${xtifyUrl}" http-method="POST">
</int-http:outbound-gateway>
答案 1 :(得分:0)
在java代码中将字符集从UTF-8更改为ISO-8859-1解决了这个问题。
try
{
message= new String(message.getBytes("UTF-8"),"ISO-8859-1");
}
catch (UnsupportedEncodingException e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}