spring-集成 http 出站网关不支持像 é 这样的法语字符

French characters like é not supported in spring-integration http outbound gateway

我正在尝试从 http 出站发送此字符串“de caisse a été enregistr***é***”gateway.This 字符串包含法语字符( é). 我收到一个错误,响应代码为 400(错误请求)

但是,当我从 rest easy 客户端框架尝试相同的操作时,我得到了成功代码 (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>


  

您应该尝试设置字符集

<int-http:outbound-gateway id="xtifygateway"

request-channel="xtifyrequestchannel" request-factory="requestFactory" charset="UTF-8"

url="${xtifyUrl}" http-method="POST">

  </int-http:outbound-gateway>

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