spring - HTTP 出站网关 - uri 变量 - 编码
问题描述
我有一个 http 出站网关,需要通过 uri 变量进行替换。我正在发送一个字符串有效载荷
<int-http:outbound-gateway
url="https://ia-zatie.str13.tst.bnst.nh/ia-zaatie/rest/signan/v2/wg/{workgroupId}//actionType/New?max={maxCount}"
http-method="GET"
header-mapper="headerMapper"
expected-response-type="java.lang.String" request-factory="sslFactory" >
<int-http:uri-variable name="workgroupId" expression="payload['workgroupId']" />
<int-http:uri-variable name="maxCount" expression="payload['maxCount']"/>
</int-http:outbound-gateway>
有效负载 - { "workgroupId":"BTL_IT", "maxCount":1}
嵌套异常是 org.springframework.expression.spel.SpelEvaluationException: EL1001E: 类型转换问题,无法在
org.springframework.integration.http.outbound.HttpRequestExecutingMessageHandler.handleRequestMessage(HttpRequestExecutingMessageHandler.爪哇:409)
为什么假设 workgroupId 的值是整数?请你告诉如何解决这个问题。
编辑: 我现在将代码更改为在控制器级别连接并根据动态部分的需要传递有效负载。新问题是“?” 变成 %3F 就像 - /New%3Fmax=1。我如何编码以及在哪里编码?
> <int-http:outbound-gateway
> url="https://ia-zatie.str13.tst.bnst.nh/ia-zaatie/rest/signan/v2/wg/{workgroup}"
> http-method="GET"
> header-mapper="headerMapper"
> expected-response-type="java.lang.String" request-factory="sslFactory" >
> <int-http:uri-variable name="workgroup" expression="payload" />
> </int-http:outbound-gateway>
有效载荷:
String payload = gsRequest.getWorkgroup()+"/actionType/New?max="+ gsRequest.getMaxCount();
which is like - BL_IH/actionType/New?max=1
解决方案
推荐阅读
- swift - Xcode 游乐场 - Swift 4 未接收 JSON 数据
- android - 我无法为此错误生成签名的 APK:配置“编译”已过时并已替换为“实施”和“API”
- python - 如何通过熊猫的完整率级别对数据进行排序以了解排序数据
- travis-ci - travis-ci 每个矩阵元素的多个构建阶段
- jquery - 如何使用 JQuery 从 JSON 中的嵌套数组或嵌套对象或类似条件中提取值
- python - 如何按嵌套注释字段排序?
- python - Pandas - 向 DF href 添加一列
- excel - 结合 COUNTIF 和 VLOOKUP
- javascript - Ionic 3 使用网格在右侧离子输入内部带有图标
- java - 区块链技术如何验证工作量证明