最简单的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,如需转载请自行联系原作者


相关文章
|
1月前
|
开发框架 .NET PHP
ASP.NET Web Pages - 添加 Razor 代码
ASP.NET Web Pages 使用 Razor 标记添加服务器端代码,支持 C# 和 Visual Basic。Razor 语法简洁易学,类似于 ASP 和 PHP。例如,在网页中加入 `@DateTime.Now` 可以实时显示当前时间。
|
2月前
|
XML 前端开发 JavaScript
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
70 3
|
3月前
|
计算机视觉 Python
Flask学习笔记(六):基于Flask的摄像头-web显示代码(可直接使用)
这篇文章是关于如何使用Flask框架结合OpenCV库,通过电脑摄像头实现视频流在网页上的实时显示,并提供了单摄像头和多摄像头的实现方法。
152 2
Flask学习笔记(六):基于Flask的摄像头-web显示代码(可直接使用)
|
3月前
|
IDE 网络安全 开发工具
IDE之vscode:连接远程服务器代码(亲测OK),与pycharm链接服务器做对比(亲自使用过了),打开文件夹后切换文件夹。
本文介绍了如何使用VS Code通过Remote-SSH插件连接远程服务器进行代码开发,并与PyCharm进行了对比。作者认为VS Code在连接和配置多个服务器时更为简单,推荐使用VS Code。文章详细说明了VS Code的安装、远程插件安装、SSH配置文件编写、服务器连接以及如何在连接后切换文件夹。此外,还提供了使用密钥进行免密登录的方法和解决权限问题的步骤。
1581 0
IDE之vscode:连接远程服务器代码(亲测OK),与pycharm链接服务器做对比(亲自使用过了),打开文件夹后切换文件夹。
|
3月前
|
IDE 网络安全 开发工具
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
本文介绍了如何在PyCharm专业版中连接远程服务器并配置远程Python环境解释器,以便在服务器上运行代码。
659 0
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
|
3月前
|
Java PHP
PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。理解其垃圾回收机制有助于开发高效稳定的PHP应用。
【10月更文挑战第1天】PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。其垃圾回收机制包括引用计数与循环垃圾回收,对提升应用性能和稳定性至关重要。本文通过具体案例分析,详细探讨PHP垃圾回收机制的工作原理,特别是如何解决循环引用问题。在PHP 8中,垃圾回收机制得到进一步优化,提高了效率和准确性。理解这些机制有助于开发高效稳定的PHP应用。
61 3
|
3月前
|
Linux C语言 C++
vsCode远程执行c和c++代码并操控linux服务器完整教程
这篇文章提供了一个完整的教程,介绍如何在Visual Studio Code中配置和使用插件来远程执行C和C++代码,并操控Linux服务器,包括安装VSCode、安装插件、配置插件、配置编译工具、升级glibc和编写代码进行调试的步骤。
563 0
vsCode远程执行c和c++代码并操控linux服务器完整教程
|
3月前
|
前端开发 Java
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例
文章介绍了如何使用SpringBoot创建简单的后端服务器来处理HTTP请求,包括建立连接、编写Controller处理请求,并返回响应给前端或网址。
73 0
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例
|
4月前
|
设计模式 数据库连接 PHP
PHP中的设计模式:如何提高代码的可维护性与扩展性在软件开发领域,PHP 是一种广泛使用的服务器端脚本语言。随着项目规模的扩大和复杂性的增加,保持代码的可维护性和可扩展性变得越来越重要。本文将探讨 PHP 中的设计模式,并通过实例展示如何应用这些模式来提高代码质量。
设计模式是经过验证的解决软件设计问题的方法。它们不是具体的代码,而是一种编码和设计经验的总结。在PHP开发中,合理地使用设计模式可以显著提高代码的可维护性、复用性和扩展性。本文将介绍几种常见的设计模式,包括单例模式、工厂模式和观察者模式,并通过具体的例子展示如何在PHP项目中应用这些模式。
|
3月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
217 3

热门文章

最新文章