SOAPAction 设置不正确 - Java
SOAPAction not setting properly - Java
我正在尝试将 SOAPAction 添加到我的 SOAP 网络请求中。
以下是我的代码:
return (TPResponse) getWebServiceTemplate().marshalSendAndReceive(genTP, message -> {
((SaajSoapMessage)message).setSoapAction("http://tempuri.org/GenerateParam");
});
预期此代码应在我的 HTTP 请求中添加一个单独的 header 字段作为 SOAPAction: "http://tempuri.org/GenerateParam"
。但以下是最终数据包的形成:
POST /myscripts/script.php?somedetails HTTP/1.1
Accept-Encoding: gzip
Accept: application/soap+xml, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Content-Type: application/soap+xml; charset=utf-8;
action="http://tempuri.org/GenerateParam"
Cache-Control: no-cache
Pragma: no-cache
User-Agent: Java/1.8.0_73
Host: 127.0.0.1
Connection: keep-alive
Content-Length: 578
请注意,它没有添加单独的 HTTP Header,而是修改了 Content-Type
并添加了带有值的 action
。有什么问题吗?
发现问题。我刚刚将 SaajSoapMessageFactory
的 Soap 协议从 SOAP_1_2_PROTOCOL
更改为 SOAP_1_1_PROTOCOL
,它开始正常工作。
我正在尝试将 SOAPAction 添加到我的 SOAP 网络请求中。
以下是我的代码:
return (TPResponse) getWebServiceTemplate().marshalSendAndReceive(genTP, message -> {
((SaajSoapMessage)message).setSoapAction("http://tempuri.org/GenerateParam");
});
预期此代码应在我的 HTTP 请求中添加一个单独的 header 字段作为 SOAPAction: "http://tempuri.org/GenerateParam"
。但以下是最终数据包的形成:
POST /myscripts/script.php?somedetails HTTP/1.1
Accept-Encoding: gzip
Accept: application/soap+xml, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Content-Type: application/soap+xml; charset=utf-8;
action="http://tempuri.org/GenerateParam"
Cache-Control: no-cache
Pragma: no-cache
User-Agent: Java/1.8.0_73
Host: 127.0.0.1
Connection: keep-alive
Content-Length: 578
请注意,它没有添加单独的 HTTP Header,而是修改了 Content-Type
并添加了带有值的 action
。有什么问题吗?
发现问题。我刚刚将 SaajSoapMessageFactory
的 Soap 协议从 SOAP_1_2_PROTOCOL
更改为 SOAP_1_1_PROTOCOL
,它开始正常工作。