捕捉soap的xml形式

简介:

下面是我以前对Php的soap接口进行抓包分析出的结果,这个分析在当服务端或者客户端的Php没有安装soap模块时,可以使用构建xml的方式实现相同的功能

服务端:

 

 
  1. <?php  
  2.  
  3. $data = $HTTP_RAW_POST_DATA;  
  4.  
  5. $data = file_get_contents('php://input');  
  6.  
  7. $server = new SoapServer(null, array('uri' => "http://abc-soap-duba/"));  
  8.  
  9. $server->addFunction("sendtask");  
  10.  
  11. $server->handle($data);  
  12.  
  13. function sendtask()  
  14.  
  15. {  
  16.  
  17.     return "ok";  
  18.  
  19. }  
  20.  
  21. ?> 
客户端代码
 
  1. <?php  
  2.  
  3. $client = new SoapClient(null, array('location' => "http://api.abc.cn/taskserver.php",  
  4.  
  5.                                      'uri' => "http://abc-soap-duba/"));  
  6.  
  7. $username="cdn@abc.cn";  
  8.  
  9. $password=md5("123456");  
  10.  
  11. $domain="www.abc.cn";  
  12.  
  13. $pathsizelist="/images/ad2.gif,4846,/images/ad3.gif,5788,/images/ico01.gif,1089,/images/logo.gif,1605";  
  14.  
  15. echo $client->sendtask($username,$password,$domain,$pathsizelist);  
  16.  
  17. ?> 
客户端发出的数据:
 
  1. POST /b.php HTTP/1.1  
  2. Host: api.abc.cn  
  3. Connection: Keep-Alive  
  4. User-Agent: PHP-SOAP/5.2.2  
  5. Content-Type: text/xml; charset=utf-8  
  6. SOAPAction: "http://abc-soap-duba/#sendtask"  
  7. Content-Length: 766  
  8.  
  9. <?xml version="1.0" encoding="UTF-8"?> 
  10. <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/"> 
  11. <SOAP-ENV:Body> 
  12. <ns1:sendtask> 
  13. <param0 xsi:type="xsd:string">cdn@abc.cn</param0> 
  14. <param1 xsi:type="xsd:string">e10adc3949ba59abbe56e057f20f883e</param1> 
  15. <param2 xsi:type="xsd:string">www.abc.cn</param2> 
  16. <param3 xsi:type="xsd:string">/images/ad2.gif,4846,/images/ad3.gif,5788,/images/ico01.gif,1089,/images/logo.gif,1605</param3> 
  17. </ns1:sendtask> 
  18. </SOAP-ENV:Body> 
  19. </SOAP-ENV:Envelope> 
当server中没有改函数时返回的结果
 
  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <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> 
当server中有该函数时的结果
 
  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <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/"> 
  3. <SOAP-ENV:Body> 
  4. <ns1:sendtaskResponse> 
  5. <return xsi:type="xsd:string">ok</return> 
  6. </ns1:sendtaskResponse> 
  7. </SOAP-ENV:Body> 
  8. </SOAP-ENV:Envelope> 

      本文转自yifangyou 51CTO博客,原文链接:http://blog.51cto.com/yifangyou/615890,如需转载请自行联系原作者


相关文章
|
2月前
|
XML 网络协议 Java
XML Web 服务技术解析:WSDL 与 SOAP 原理、应用案例一览
XML Web服务是基于WSDL、SOAP、RDF和RSS等标准的网络应用程序组件技术。WSDL描述服务接口和消息格式,SOAP用于结构化信息交换,RDF描述网络资源,RSS则用于发布网站更新。Web服务特点是自包含、自描述,基于开放协议,可重用且能连接现有软件。WSDL文档包含`types`、`message`、`portType`和`binding`元素,定义服务操作和协议。SOAP协议规定消息格式,通过HTTP等传输。
503 1
|
XML JavaScript 网络架构
|
XML 安全 网络架构
构建安全的Xml Web Service系列之初探使用Soap头
原文:构建安全的Xml Web Service系列之初探使用Soap头    Xml Web Service 从诞生那天就说自己都么都么好,还津津乐道的说internet也会因此而进入一个新纪元,可5年多来,Xml Web Service并没有像当初宣扬的那样火起来,尽管在一些领域之内,也有人牛刀小试,但从整体而言,Service还并没有得到广泛的应用,原因有很多,有一些来源于目前各大厂商都坚持自己的service标准,不能形成统一,也有对现有的稳定系统不愿进行更改的原因,但还包括web service本身的原因,最明显的应该是两个:1) 安全,2)性能。
1011 0
|
XML 网络架构 数据格式
消息(3)——soap,xml及soap序列化器
在上篇随笔中对于客户实例传递的xml实现中,手动定义了xml的数据格式,如果现在对产品实例进行传递,那么还要手动对产品实例进行xml进行数据格式化。现在有一套为数据传递定义的协议,那就是soap。其实html也是一种数据存储格式,但html更注重的是表现数据。
716 0
|
XML 数据格式 网络架构
对象的序列化与反序列化,以xml,二进制流的方式,soap方式序列化对象
  System.Runtime.Serialization.Formatters.Soap 命名空间包含SoapFormatter 类,该类用于以SOAP 格式将对象序列化和反序列化。生成使用此命名空间中的类型的应用程序时,必须引用System.Runtime.Serialization.Formatters.Soap.dll 程序集。   using System;using 
1079 0
|
9天前
|
XML Java 数据格式
java创建xml文件内容
java创建xml文件内容
11 0
|
9天前
|
XML Java 数据格式
java解析xml文件内容
java解析xml文件内容
14 0
|
5天前
|
XML Java 数据库
配置applicationContext.xml文件
配置applicationContext.xml文件
|
2天前
|
XML Java 数据库
配置applicationContext.xml文件
配置applicationContext.xml文件
|
5天前
|
XML JavaScript Java
解析XML文件的几种方法
解析XML文件的几种方法