开发者社区> 技术小胖子> 正文

最简单的SOAP服务端和客户端代码(不需要web服务器)

简介:
+关注继续查看

服务端代码(不需要web服务器,直接运行即可)

 


  1. use SOAP::Transport::HTTP;  
  2.  
  3. #提供给客户端调用的函数  
  4. sub runBiz()  
  5. {  
  6.   my ($a,$packageName,$bizDataXML) = (@_);  
  7.   print "receive[$packageName,$bizDataXML]";  
  8. # 返回给客户端的值  
  9.   return SOAP::Data->name(result => "soap server receive[$packageName,$bizDataXML]");  
  10. }  
  11. #启动服务端  
  12. my $daemon = SOAP::Transport::HTTP::Daemon  
  13.     -> new (LocalAddr => 'localhost',LocalPort => 9080)   
  14. # 把函数加载到服务里 dispatch_to('/Your/Path/To/Deployed/Modules''Module::Name''Module::method')  
  15. #dispatch_to(   
  16. 'PATH/', # dynamicload anything from there, any module, any method  
  17. 'MODULE', # staticany method from this module   
  18. 'MODULE::method', # static: specified method from this module  
  19. 'method', # static: specified method from main::   
  20. # );  
  21.     -> dispatch_to("runBiz")   
  22.   ;  
  23.   print "Contact to SOAP server at ", $daemon->url, "\n";  
  24. # 启动监听  
  25.   $daemon->handle; 

客户端代码:

 


  1. use SOAP::Lite;  
  2. my $bizDataXML='<?xml version="1.0" encoding="GB2312"?>  
  3. <root>  
  4.         <data>  
  5.                 <WGINFOR>XXXXXXXX</WGINFOR>  
  6.                 <TIME>2010-09-19 18:17:20</TIME>  
  7. ';  
  8.  
  9. $soap_client = SOAP::Lite  
  10. # -> uri('runBiz')  
  11.   -> proxy("http://localhost:9080/");   
  12.       
  13. #设置用户名密码   
  14. #eval { $soap_client->transport->http_request->header  
  15. #(  
  16. 'Authorization' =>   
  17. 'Basic ' . MIME::Base64::encode("$sUID:$sPWD"'')  
  18. #); };  
  19.  
  20. $soap_response = $soap_client->runBiz  
  21. (  
  22.               SOAP::Data->name(packageName=>"ISS_KM"), #参数1  
  23.         SOAP::Data->name(bizDataXML => $bizDataXML) #参数2  
  24. );  
  25. #打印返回值  
  26. print $soap_response->result,"\n"

测试环境:winXP perl v5.6.1 built for MSWin32-x86-multi-thread,测试结果:

 

 

end







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


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Asp.Net Web API 2第三课——.NET客户端调用Web API
原文:Asp.Net Web API 2第三课——.NET客户端调用Web API Asp.Net Web API 导航     Asp.Net Web API第一课——入门http://www.cnblogs.com/aehyok/p/3432158.html       Asp.Net Web API第二课——CRUD操作http://www.cnblogs.com/aehyok/p/3434578.html 前言 本教程演示从一个控制台应用程序,使用HttpClient调用Web API。
1134 0
Web前端,让你代码整洁的原则
写Web页面就像我们建设房子一样,地基牢固,房子才不会倒。同样的,我们制作Web页面也一样,一个良好的HTML结构是制作一个美丽的网站的开始,同样的,良好的CSS只存在同样良好的HTML中,所以一个干净的,语义的HTML的优点很多,那么平时制作中,我们做到了这一点吗?我们一起来看一张图片:   上图展示了两段代码,我想大家都只会喜欢第一种,我们先不说其语义,至少他的结构让我们看上去清爽,而第二种呢?一看就是糟糕的代码的代码,让人讨厌的代码。
966 0
ctfshow-WEB-web12( 利用代码执行漏洞读取敏感文件)
ctf.show WEB模块第12关是一个代码执行漏洞, flag藏在根目录下的一个文件中, 读取文件内容接口过关
29 0
通过90行代码学会HTML5 WebSQL的4种基本操作
通过90行代码学会HTML5 WebSQL的4种基本操作
24 0
哀悼日网站全站变灰代码,最简单的还是ng这种方式...
一般在清明节,全国哀悼日,大地震的日子,以及一些影响力很大的伟人逝世或纪念日的时候,身为站长的我们都会让自己的网站的全部网页变成灰色(黑白色),以表示我们对逝者的悼念。那么今天就说说,通过几行简单的代码,来实现这个功能。
929 0
Java Socket服务端客户端通信实例
本文目录 1. Socket是啥 2. 运行机制 3. 代码示例 4. 测试 5. 小结
39 0
21117
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载