Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3698368
  • 博文数量: 291
  • 博客积分: 8003
  • 博客等级: 大校
  • 技术积分: 4275
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-30 18:28
文章分类

全部博文(291)

文章存档

2017年(1)

2013年(47)

2012年(115)

2011年(121)

2010年(7)

分类: 系统运维

2011-05-31 23:16:11

下面是我以前对Php的soap接口进行抓包分析出的结果,这个分析在当服务端或者客户端的Php没有安装soap模块时,可以使用构建xml的方式实现相同的功能
服务端:
  1. <?php
  2. $data = $HTTP_RAW_POST_DATA;
  3. $data = file_get_contents('php://input');
  4. $server = new SoapServer(null, array('uri' => "http://abc-soap-duba/"));
  5. $server->addFunction("sendtask");
  6. $server->handle($data);
  7. function sendtask()
  8. {
  9.     return "ok";
  10. }
  11. ?>
客户端代码
  1. <?php
  2. $client = new SoapClient(null, array('location' => "http://api.abc.cn/taskserver.php",
  3.                                      'uri' => "http://abc-soap-duba/"));
  4. $username="cdn@abc.cn";
  5. $password=md5("123456");
  6. $domain="www.abc.cn";
  7. $pathsizelist="/images/ad2.gif,4846,/images/ad3.gif,5788,/images/ico01.gif,1089,/images/logo.gif,1605";
  8. echo $client->sendtask($username,$password,$domain,$pathsizelist);
  9. ?>
客户端发出的数据:
  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. cdn@abc.cn
  9. e10adc3949ba59abbe56e057f20f883e
  10. www.abc.cn
  11. /images/ad2.gif,4846,/images/ad3.gif,5788,/images/ico01.gif,1089,/images/logo.gif,1605
当server中没有改函数时返回的结果
  1. SOAP-ENV:ServerFunction 'sendtasks' doesn't exist
当server中有该函数时的结果
  1. ok
end
阅读(3862) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~