捕捉soap的xml形式

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

服务端:

 $data = $HTTP_RAW_POST_DATA;
$data = file_get_contents(‘php://input‘);
$server = new SoapServer(null, array(‘uri‘ => "http://abc-soap-duba/"));
$server->addFunction("sendtask");
$server->handle($data);
function sendtask()
{
    return "ok";
}

客户端代码  

    <?php
    $client = new SoapClient(null, array(‘location‘ => "http://api.abc.cn/taskserver.php",
                                         ‘uri‘ => "http://abc-soap-duba/"));
    $username="[email protected]";
    $password=md5("123456");
    $domain="www.abc.cn";
    $pathsizelist="/images/ad2.gif,4846,/images/ad3.gif,5788,/images/ico01.gif,1089,/images/logo.gif,1605";
    echo $client->sendtask($username,$password,$domain,$pathsizelist);
    ?>

客户端发出的数据:

    POST /b.php HTTP/1.1
    Host: api.abc.cn
    Connection: Keep-Alive
    User-Agent: PHP-SOAP/5.2.2
    Content-Type: text/xml; charset=utf-8
    SOAPAction: "http://abc-soap-duba/#sendtask"
    Content-Length: 766
    <?xml version="1.0" encoding="UTF-8"?>
    <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/">
    <SOAP-ENV:Body>
    <ns1:sendtask>
    <param0 xsi:type="xsd:string">[email protected]</param0>
    <param1 xsi:type="xsd:string">e10adc3949ba59abbe56e057f20f883e</param1>
    <param2 xsi:type="xsd:string">www.abc.cn</param2>
    <param3 xsi:type="xsd:string">/images/ad2.gif,4846,/images/ad3.gif,5788,/images/ico01.gif,1089,/images/logo.gif,1605</param3>
    </ns1:sendtask>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>

当server中没有改函数时返回的结果

    <?xml version="1.0" encoding="UTF-8"?>
    <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中有该函数时的结果

    <?xml version="1.0" encoding="UTF-8"?>
    <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/">
    <SOAP-ENV:Body>
    <ns1:sendtaskResponse>
    <return xsi:type="xsd:string">ok</return>
    </ns1:sendtaskResponse>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>

end

捕捉soap的xml形式

时间: 2024-08-03 22:51:55

捕捉soap的xml形式的相关文章

xml形式数据解析

 import java.io.IOException; import java.io.StringReader; import java.util.List; import org.jdom.Document; import org.jdom.Element; import org.jdom.JDOMException; import org.jdom.Namespace; import org.jdom.input.SAXBuilder; import org.xml.sax.Input

Log4j(四)XML形式配置文件

参考文章 http://willow-na.iteye.com/blog/347340 (1)配置文件 下面是直接从那篇文章拿过来的代码,做了一些修改,后面也会补上一些其他的内容,希望原作者不会介意 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration

android-animation 动画效果实现(xml形式实现)

1.定义xml动画 1)在anim文件夹下定义xml文件 解释:这个文件夹下面的文件会被默认为动画文件,如果这个文件不存在,需要自己创建 display_result_anim.xml <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <!--缩放动画--&g

PHP SOAP 发送XML

<?php $xmldata = <<<EOT <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soa

XStream--java对象与xml形式文件相互转换

1.pom.xml中添加依赖 <dependency> <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream</artifactId> <version>1.4.7</version> </dependency> 2.创建xmlUtil类,并对XStream配置 2.1 解决双下划线:XStream把对象中的属性如person_name转

ssh整合之七注解结合xml形式

1.在之前的ssh搭建过程中,我们是使用纯xml的方式进行编写的,这样的话,确实也挺麻烦,我们可不可以使用更简单的形式进行配置呢? 答案是肯定的,我们可以使用我们的注解形式进行快速搭建ssh框架 2.我们的配置文件hibernate是用jpa注解,struts是用struts的注解,spring是使用ioc和事务的注解 首先先修改我们的hibernate中内容,即实体类 package com.itheima.entity; import javax.persistence.Column; im

Spring 一二事(9) - xml 形式的 AOP

AOP在spring中是非常重要的一个 在切面类中,有5种通知类型: aop:before  前置通知 aop:after-returning  后置通知 aop:after  最终通知 aop:after-throwing  异常通知 aop:around  环绕通知 1 <bean id="personDAO" class="com.lee.spring002.aop.xml.PersonDAOImpl"></bean> 2 <be

Spring4-EL表达式-xml形式

1.创建Maven项目,项目名称springdemo43,如图所示 2.配置Maven,修改项目中的pom.xml文件,修改内容如下 <project xmlns="http://maven.apache.org/POM/4.0.0"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

C# 模拟POST提交(根据URL地址,参数以xml形式传递)

/// <summary> /// 模拟POST提交 /// </summary> /// <param name="url">请求地址</param> /// <param name="uploadData">xml参数</param> /// <returns>返回结果</returns> public string PostJDWebHtml(String url,