繁体   English   中英

WSO2 API Manager 3.2.0 POST header 中的额外文本

[英]Extra text in WSO2 API Manager 3.2.0 POST header

I've been using trying out the WSO2 API Manager 3.2.0 to generate REST APIs for a SOAP web service and have successfully traversed the procedures. 我启用了消息线跟踪以查看日志中的请求响应。 我可以看到正在创建格式正确的消息并将其发送到后端服务,但是响应与预期不符。 我注意到在 XML 有效负载之前发送了一些额外的文本(通常是“ 16e ”,如倒数第二行),因此被作为有效负载处理。 我怀疑这是我的问题的原因,但我无法追踪它的起源。

TID: [-1] [] [2021-05-12 15:23:55,792] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-5 << "POST /services/services.php HTTP/1.1[\r][\n]"
TID: [-1] [] [2021-05-12 15:23:55,792] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-5 << "Origin: https://api-manager.ug.com:9443[\r][\n]"
TID: [-1] [] [2021-05-12 15:23:55,792] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-5 << "SOAPAction: https://testservices.ug.com/services/services.php/GetAccountBalance_2[\r][\n]"
TID: [-1] [] [2021-05-12 15:23:55,792] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-5 << "activityID: 119801787388364143641044[\r][\n]"
TID: [-1] [] [2021-05-12 15:23:55,792] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-5 << "Accept: application/json[\r][\n]"
TID: [-1] [] [2021-05-12 15:23:55,792] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-5 << "Referer: https://api-manager.ug.com:9443/[\r][\n]"
TID: [-1] [] [2021-05-12 15:23:55,793] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-5 << "testkey: 76d33583-e7f9-42a3-a4ad-d91118f8b043[\r][\n]"
TID: [-1] [] [2021-05-12 15:23:55,793] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-5 << "Accept-Encoding: gzip, deflate, br[\r][\n]"
TID: [-1] [] [2021-05-12 15:23:55,793] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-5 << "Accept-Language: en-US,en;q=0.5[\r][\n]"
TID: [-1] [] [2021-05-12 15:23:55,793] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-5 << "DNT: 1[\r][\n]"
TID: [-1] [] [2021-05-12 15:23:55,793] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-5 << "Content-Type: application/soap+xml[\r][\n]"
TID: [-1] [] [2021-05-12 15:23:55,793] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-5 << "Transfer-Encoding: chunked[\r][\n]"
TID: [-1] [] [2021-05-12 15:23:55,793] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-5 << "Host: testservices.ug.com[\r][\n]"
TID: [-1] [] [2021-05-12 15:23:55,793] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-5 << "Connection: Keep-Alive[\r][\n]"
TID: [-1] [] [2021-05-12 15:23:55,793] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-5 << "User-Agent: Synapse-PT-HttpComponents-NIO[\r][\n]"
TID: [-1] [] [2021-05-12 15:23:55,793] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-5 << "[\r][\n]"
TID: [-1] [] [2021-05-12 15:23:55,793] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-5 << "16e[\r][\n]"
TID: [-1] [] [2021-05-12 15:23:55,794] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-5 << "<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:web="http://testservices.ug.com/soap/TransactionServices"><soapenv:Body><web:GetAccountBalance_2><AccountNumber>001221131211</AccountNumber><AuthToken>111111</AuthToken></web:GetAccountBalance_2></soapenv:Body></soapenv:Envelope>[\r][\n]"

当我使用 XML 请求并直接调用后端 SOAP 服务时,我得到了成功的响应。 知道什么可能对这个文本负责,我需要做些什么来摆脱它? 您的帮助将不胜感激。

我从https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Transfer-Encoding#directives获得了 16e 的来源

分块

数据以一系列块的形式发送。 在这种情况下,Content-Length header 被省略,并且在每个块的开头,您需要以十六进制格式添加当前块的长度,然后是'\r\n',然后是块本身,然后是另一个'\ r\n'。 终止块是常规块,但其长度为零。 紧随其后的是预告片,它由实体 header 字段的(可能为空)序列组成。

问题原来是内容类型。 我正在发送值“application/soap+xml”并通过在xml配置文件中添加以下行来将其更改为“text/xml”默认/api/

<property name="ContentType" value="text/xml" scope="axis2" type="STRING"/>

这就是让它工作所需的一切。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM