我正在尝试从一个 REST 客户端到另一个客户端进行基本的 GET/POST。我很好地获取和映射数据,但在 POST http 出站端点期间超时。在使用 Fiddler Web Debugger 时,我发现问题出在 Content-Length 上。我收到错误“内容长度不匹配:RequestHeader 指示 403 个字节,但客户端发送了 61 个字节。”
如果使用以下语法手动设置 Content-Length,则它可以正常工作:
<message-properties-transformer scope="outbound>
<add-message-property key="Content-Type" value="application/json"/>
<add-message-property key="Content-Length" value="61"/>
</message-properties-transformer>
我不明白为什么 Content-Length 不正确。我不能将它硬编码为 61,因为我传输的记录总是会有不同的长度。
任何想法将不胜感激。
布雷特
注意:这是完整的流程:
<http:endpoint exchange-pattern="request-response" host="slcomax.ameipro.com" port="80" path="maxrest/rest/mbo/worktype/115?_lid=mxintadm&_lpwd=mxintadm" method="GET" name="HTTP" doc:name="HTTP"/>
<data-mapper:config name="maxtondtypes" transformationGraphPath="maxtondtypes.grf" doc:name="maxtondtypes"/>
<flow name="ruby_rest_testerFlow1" doc:name="ruby_rest_testerFlow1">
<quartz:inbound-endpoint jobName="getTypes" repeatInterval="600000" responseTimeout="10000" doc:name="Quartz">
<quartz:endpoint-polling-job>
<quartz:job-endpoint ref="HTTP"/>
</quartz:endpoint-polling-job>
</quartz:inbound-endpoint>
<echo-component doc:name="Echo"/>
<data-mapper:transform config-ref="maxtondtypes" doc:name="DataMapper"/>
<echo-component doc:name="Echo"/>
<http:outbound-endpoint exchange-pattern="request-response" host="ndeavor.ameipro.com" port="80" path="types" doc:name="HTTP" contentType="application/json">
<message-properties-transformer scope="outbound">
<add-message-property key="Content-Type" value="application/json"/>
<!-- <add-message-property key="Content-Length" value="61"/> -->
</message-properties-transformer>
</http:outbound-endpoint>
<echo-component doc:name="Echo"/>
</flow>