捕捉soap的xml形式
下面是我以前对Php的soap接口进行抓包分析出的结果,这个分析在当服务端或者客户端的Php没有安装soap模块时,可以使用构建xml的方式实现相同的功能<div>服务端:</div><div><div id="codeText" class="codeText"><ol style="margin:0 1px 0 0;padding:5px 0;" start="1" class="dp-css"><li><span style="color:#000000;"><span style="color:#0000CC;"><</span><span style="color:#0000CC;">?</span><span style="color:#0000FF;">php</span><br></span></li><li><span style="color:#0000FF;">$</span><span style="color:#008080;">data</span> <span style="color:#0000CC;">=</span> <span style="color:#0000FF;">$</span><span style="color:#008080;">HTTP_RAW_POST_DATA</span><span style="color:#0000CC;">;</span><br></li><li>
<span style="color:#0000FF;">$</span><span style="color:#008080;">data</span> <span style="color:#0000CC;">=</span> <span style="color:#FF0000;">file_get_contents</span><span style="color:#0000CC;">(</span><span style="color:#FF00FF;">'php://input'</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
<span style="color:#0000FF;">$</span><span style="color:#008080;">server</span> <span style="color:#0000CC;">=</span> <span style="color:#0000FF;">new</span> SoapServer<span style="color:#0000CC;">(</span><span style="color:#0000FF;">null</span><span style="color:#0000CC;">,</span> <span style="color:#FF0000;">array</span><span style="color:#0000CC;">(</span><span style="color:#FF00FF;">'uri'</span> <span style="color:#0000CC;">=</span><span style="color:#0000CC;">></span> <span style="color:#FF00FF;">"http://abc-soap-duba/"</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
<span style="color:#0000FF;">$</span><span style="color:#008080;">server</span><span style="color:#0000CC;">-</span><span style="color:#0000CC;">></span>addFunction<span style="color:#0000CC;">(</span><span style="color:#FF00FF;">"sendtask"</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
<span style="color:#0000FF;">$</span><span style="color:#008080;">server</span><span style="color:#0000CC;">-</span><span style="color:#0000CC;">></span>handle<span style="color:#0000CC;">(</span><span style="color:#0000FF;">$</span><span style="color:#008080;">data</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
<span style="color:#0000FF;">function</span> sendtask<span style="color:#0000CC;">(</span><span style="color:#0000CC;">)</span><br></li><li>
<span style="color:#0000CC;">{</span><br></li><li>
<span style="color:#0000FF;">return</span> <span style="color:#FF00FF;">"ok"</span><span style="color:#0000CC;">;</span><br></li><li>
<span style="color:#0000CC;">}</span><br></li><li>
<span style="color:#0000CC;">?</span><span style="color:#0000CC;">></span></li></ol></div></div><div>客户端代码</div><div><div id="codeText" class="codeText"><ol style="margin:0 1px 0 0;padding:5px 0;" start="1" class="dp-css"><li><span style="color:#000000;"><span style="color:#0000CC;"><</span><span style="color:#0000CC;">?</span><span style="color:#0000FF;">php</span><br></span></li><li>
<span style="color:#0000FF;">$</span><span style="color:#008080;">client</span> <span style="color:#0000CC;">=</span> <span style="color:#0000FF;">new</span> SoapClient<span style="color:#0000CC;">(</span><span style="color:#0000FF;">null</span><span style="color:#0000CC;">,</span> <span style="color:#FF0000;">array</span><span style="color:#0000CC;">(</span><span style="color:#FF00FF;">'location'</span> <span style="color:#0000CC;">=</span><span style="color:#0000CC;">></span> <span style="color:#FF00FF;">"http://api.abc.cn/taskserver.php"</span><span style="color:#0000CC;">,</span><br></li><li>
<span style="color:#FF00FF;">'uri'</span> <span style="color:#0000CC;">=</span><span style="color:#0000CC;">></span> <span style="color:#FF00FF;">"http://abc-soap-duba/"</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
<span style="color:#0000FF;">$</span><span style="color:#008080;">username</span><span style="color:#0000CC;">=</span><span style="color:#FF00FF;">"cdn@abc.cn"</span><span style="color:#0000CC;">;</span><br></li><li>
<span style="color:#0000FF;">$</span><span style="color:#008080;">password</span><span style="color:#0000CC;">=</span><span style="color:#FF0000;">md5</span><span style="color:#0000CC;">(</span><span style="color:#FF00FF;">"123456"</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
<span style="color:#0000FF;">$</span><span style="color:#008080;">domain</span><span style="color:#0000CC;">=</span><span style="color:#FF00FF;">"www.abc.cn"</span><span style="color:#0000CC;">;</span><br></li><li>
<span style="color:#0000FF;">$</span><span style="color:#008080;">pathsizelist</span><span style="color:#0000CC;">=</span><span style="color:#FF00FF;">"/images/ad2.gif,4846,/images/ad3.gif,5788,/images/ico01.gif,1089,/images/logo.gif,1605"</span><span style="color:#0000CC;">;</span><br></li><li>
<span style="color:#FF0000;">echo</span> <span style="color:#0000FF;">$</span><span style="color:#008080;">client</span><span style="color:#0000CC;">-</span><span style="color:#0000CC;">></span>sendtask<span style="color:#0000CC;">(</span><span style="color:#0000FF;">$</span><span style="color:#008080;">username</span><span style="color:#0000CC;">,</span><span style="color:#0000FF;">$</span><span style="color:#008080;">password</span><span style="color:#0000CC;">,</span><span style="color:#0000FF;">$</span><span style="color:#008080;">domain</span><span style="color:#0000CC;">,</span><span style="color:#0000FF;">$</span><span style="color:#008080;">pathsizelist</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
<span style="color:#0000CC;">?</span><span style="color:#0000CC;">></span></li></ol></div></div><div>客户端发出的数据:</div><div><div id="codeText" class="codeText"><ol style="margin:0 1px 0 0;padding:5px 0;" start="1" class="dp-css"><li>POST /b.php HTTP/1.1</li><li>
Host: api.abc.cn</li><li>
Connection: Keep-Alive</li><li>
User-Agent: PHP-SOAP/5.2.2</li><li>
Content-Type: text/xml; charset=utf-8</li><li>
SOAPAction: "http://abc-soap-duba/#sendtask"</li><li>
Content-Length: 766</li><li>
</li><li>
<?xml version="1.0" encoding="UTF-8"?></li><li>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://abc-soap-duba/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"></li><li>
<SOAP-ENV:Body></li><li>
<ns1:sendtask></li><li>
<param0 xsi:type="xsd:string">cdn@abc.cn</param0></li><li>
<param1 xsi:type="xsd:string">e10adc3949ba59abbe56e057f20f883e</param1></li><li>
<param2 xsi:type="xsd:string">www.abc.cn</param2></li><li>
<param3 xsi:type="xsd:string">/images/ad2.gif,4846,/images/ad3.gif,5788,/images/ico01.gif,1089,/images/logo.gif,1605</param3></li><li>
</ns1:sendtask></li><li>
</SOAP-ENV:Body></li><li>
</SOAP-ENV:Envelope></li></ol></div></div><div>当server中没有改函数时返回的结果</div><div><div id="codeText" class="codeText"><ol style="margin:0 1px 0 0;padding:5px 0;" start="1" class="dp-css"><li><?xml version="1.0" encoding="UTF-8"?></li><li>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Function 'sendtasks' doesn't exist</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope></li></ol></div></div><div>当server中有该函数时的结果</div><div><div id="codeText" class="codeText"><ol style="margin:0 1px 0 0;padding:5px 0;" start="1" class="dp-css"><li><?xml version="1.0" encoding="UTF-8"?></li><li>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://abc-soap-duba/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"></li><li>
<SOAP-ENV:Body></li><li>
<ns1:sendtaskResponse></li><li>
<return xsi:type="xsd:string">ok</return></li><li>
</ns1:sendtaskResponse></li><li>
</SOAP-ENV:Body></li><li>
</SOAP-ENV:Envelope></li></ol></div></div><div>end</div>
页:
[1]