我们使用了int-http:outbound-gateway
<int-http:outbound-gateway request-channel="userDataRequest"
id="outboundUserDetailsGateway" url-expression="url"
http-method="GET" expected-response-type="com.xxx.UserResponse">
</int-http:outbound-gateway>
我们从出站网关命中的 GET 请求工作正常。我们已经通过各种休息客户端/curl 对其进行了验证。
流概述
用户点击一些帖子请求(入站请求)。该请求由 int-http:inbound-gateway 检索。为了获得一些细节,我们的系统命中一个上面提到的GET(出站请求)请求到其他系统。
问题当入站请求(POST)由curl/jmeter/Advance rest客户端完成时,它工作正常,但是,如果该请求来自邮递员/回旋镖,则显示
org.springframework.http.converter.HttpMessageNotReadableException: 无法读取文档: 非法字符((CTRL-CHAR,代码 31)):令牌之间只允许常规空格 (\r, , \t) 在[来源:java.io.PushbackInputStream@3f0a204c;行:1,列:2];嵌套异常是 com.fasterxml.jackson.core.JsonParseException:非法字符((CTRL-CHAR,代码 31)):令牌之间只允许常规空格 (\r, , \t) 在 [来源: java.io.PushbackInputStream@3f0a204c; 行: 1, 列: 2]
当系统命中出站请求 (GET) 请求时,我们收到此错误。
在我们的例子中,我们在服务端 Nginx 的 gzip 中包含 application/json。我们刚刚从 gzip 中排除了应用程序/json,它对我们有用。