终于尝试几个小时后,我能够与telnet
调用SOAP服务如下
首先打开一个TCP连接到下面的远程服务器。
$> telnet hostname portname
一旦被连接,帧请求作为对以下方法中的一种并粘贴在屏幕上,并按下enter key
两次。
有两种方法可以调用服务。
方法1:代替POST
头提终点的路径,我们可以给它SOAPAction
头。
POST/HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: "<endpoint URL from WSDL>"
Content-Length: <number of bytes you are sending in body section>
Host: <hostname>:<port>
Proxy-Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
<SOAP Request payload>
方法2:提的是在请求报头本身的端点的路径,所以我们可以给在“” SOAPAction头空值(这意味着请求路径本身是端点路径)。
POST /soap/server HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: ""
Content-Length: <payload size>
Host: hostname:port
Proxy-Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
<SOAP Request payload>
响应:一旦呼叫成功调用,响应将被打印如下
HTTP/1.1 200 OK
Content-Type: text/xml;charset=UTF-8
Content-Length: <response payload size>
<SOAP response payload>
欲了解更多有关的SOAPHeader check this link
注:确保长度请求有效载荷在发送前是正确的。
感谢您使用解决方案返回!你今天让互联网更聪明一点:) –