弹簧集成的http出站网关不支持é等法语字符

时间:2016-04-15 12:50:33

标签: java spring spring-integration resteasy

我正在尝试从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>


  

2 个答案:

答案 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();
   }