gpt4 book ai didi

spring - HTTP-出站网关不显示特殊字符-编码中断

转载 作者:可可西里 更新时间:2023-11-01 17:11:13 28 4
gpt4 key购买 nike

我们有一个使用 http-outboundgateway 进行 REST 调用的客户端

<int-http:outbound-gateway request-channel="glNewsRequestChannel"
url="${gl.url}" http-method="GET" expected-response-type="java.lang.String"
reply-channel="glHeaderEnricher" charset="iso-8859-1">
<int-http:uri-variable name="site_code"
expression="payload" />
</int-http:outbound-gateway>

当获取响应并将其保存在文件中时,它会显示一些困惑的字符——这基本上无法以特定的编码进行翻译。我引用了 SI 文档,其中提到除非指定工厂,否则 Java URLconnection 类用于放置 REST 调用。为了缩小问题的范围,我编写了一个小的 Java 程序并直接使用了 URLconnection 类,而没有使用任何开箱即用的模板或网关 - 它成功地获取并呈现了所有特殊字符。我尝试了另一个独立的应用程序,它是 apache http 库,它也能够获取字符。作为 SI 的一部分,我缺少任何配置吗?

最佳答案

进一步的调查显示我们使用了错误的消息转换器 - 如果我们使用 byte[] 而不是使用字符串转换器,根据 bytearraymessageconverter - 它按预期工作。

    <int-http:outbound-gateway request-channel="glNewsRequestChannel" url="${gl.url}" 
http-method="GET" message-converters="byteArrayHttpMessageConverter"
expected-response-type="byte[]" reply-channel="glHeaderEnricher"
charset="iso-8859-1"> <int-http:uri-variable name="site_code"
expression="payload" />
</int-http:outbound-gateway>

其中 byteArrayHttpMessageConverter 可以定义为:

    <bean id="byteArrayHttpMessageConverter"
class="org.springframework.http.converter.ByteArrayHttpMessageConverter">
</bean>

关于spring - HTTP-出站网关不显示特殊字符-编码中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12846057/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com