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

全部博文(291)

文章存档

2017年(1)

2013年(47)

2012年(115)

2011年(121)

2010年(7)

分类: Python/Ruby

2011-04-22 23:57:36

服务端代码(不需要web服务器,直接运行即可)
  1. use SOAP::Transport::HTTP;

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

客户端代码:

 

  1. use SOAP::Lite;
  2. my $bizDataXML='

  3.         
  4.                 XXXXXXXX
  5.                 
  6. ';

  7. $soap_client = SOAP::Lite
  8. # -> uri('runBiz')
  9.   -> proxy("");
  10.     
  11. #设置用户名密码
  12. #eval { $soap_client->transport->http_request->header
  13. #(
  14. # 'Authorization' =>
  15. # 'Basic ' . MIME::Base64::encode("$sUID:$sPWD", '')
  16. #); };

  17. $soap_response = $soap_client->runBiz
  18. (
  19.               SOAP::Data->name(packageName=>"ISS_KM"), #参数1
  20.         SOAP::Data->name(bizDataXML => $bizDataXML) #参数2
  21. );
  22. #打印返回值
  23. print $soap_response->result,"\n";

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

 

 

阅读(2532) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~