XmlRpc with C#/Java【转】

最近看了几个项目都是用xmlrpc协作完成的,就做了几个测试客户端和服务器端和大家一起分享。希望能对入门的同学有帮助

关于xmlrpc的介绍和规范参考http://www.xml-rpc.net/ 下面我就直奔主题举几个例子了

c#服务端

首先在VS中添加引用CookComputing.XmlRpc.dll

功能:仅仅返回一个拼接后的字符串

using System; 
using CookComputing.XmlRpc; 
namespace xmlrpcServerTest 

    public class server : XmlRpcService 
    { 
        [XmlRpcMethod("server.hello")]    //即可写方法注解,也可写类注解,此为方法注解
        public string hello(string param) 
        { 
            return "hello world "+param; 
        } 
    } 
}

在配置文件中加入如下配置(归属到<system.web>节点)

<httpHandlers>
  <add verb="*" path="server.aspx" type="xmlrpcServerTest.server, xmlrpcServerTest" />
</httpHandlers> 实现 web调用到应用程序类的映射

c#客户端

using System; 
using CookComputing.XmlRpc; 
namespace xmlrpcClientTest 

    /// <summary> 
    /// Summary description for Class1. 
    /// </summary> 
    public interface client  
    { 
        [XmlRpcMethod("server.hello")] 
        string hello(string param); 
    } 
    class xmlrpcClientTest 
    { 
        /// <summary> 
        /// The main entry point for the application. 
        /// </summary> 
        [STAThread] 
        static void Main(string[] args) 
        { 
            // 
            // TODO: Add code to start application here 
            // 
            client iclient; 
            XmlRpcClientProtocol protocol; 
            iclient = (client)XmlRpcProxyGen.Create(typeof(client)); 
            protocol = (XmlRpcClientProtocol)iclient; 
            protocol.Url = "http://localhost/xmlrpcServerTest/server.aspx"; 
            protocol.KeepAlive = false; 
            string ret = iclient.hello("test"); //调用 
            Console.WriteLine(ret); 
            Console.ReadLine(); 
        } 
    } 

其中客户端的web方法名称即[ ]中的名称必须和服务端相同,否则会抛异常。

再看java:

java服务端:

首先在你所使用的IDE中导入xmlrpc组件的包

rpc代码如下、web处理部分可以用servlet或jsp来调用这个类、封装到一个方法中

//传入request和response内置对象  
......... 
public class server {   
  public void invoke() { 
  XmlRpcServer xmlrpc = new XmlRpcServer(); 
    xmlrpc.addHandler("server", new serverImpl()); 
    byte[] result = xmlrpc.execute(request.getInputStream());    
.......... 
  } 

.......... 
public class serverImpl{ 
    String function(String paramHead,String paramTail){ 
        return paramHead+paramTail; 
    } 

serverImpl为一个普通的java类,可以用来处理业务逻辑,“server

java客户端:

try{ 
            XmlRpcClient client = new XmlRpcClient(http://localhost:8080/project/servProvider); 
                                                   //project是你的工程名字 
                                                   //servProvider可以是servlet或jsp  
            String[] param = {"hello ","world"}; 
            Vector param_vector = new Vector(); 
            param_vector.addElement(param[0]); 
            param_vector.addElement(param[1]);                    
            String res ="sdf"; 
            res = (String)client.execute("server.function",param_vector); 
            System.out.println(res); 
        } 
        catch(MalformedURLException e) 
        { 
            System.out.println(e.toString()); 
        } 
        catch (IOException e) { 
            System.out.println(e.toString()); 
        } 
        catch (XmlRpcException e) { 
            System.out.println(e.toString()); 
        } 
完毕,这就是很有用的xmlrpc

”可以理解为serverImpl的一个代理或标号,便于服务器端定向

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/djseaside/archive/2008/08/20/2803182.aspx

XmlRpc with C#/Java【转】,布布扣,bubuko.com

时间: 2024-11-02 23:22:42

XmlRpc with C#/Java【转】的相关文章

OpenERP-Java调用XML-RPC接口示例(Examples for calling XML-RPC interfaces by Java)

官网没有给出CREATE.SEARCH.WRITE等XML-RPC接口的Java 调用示例,在此补充一下. There is no examples on the official site for the XML-RPC operation interfaces for Java, so I posted my code here. /**  * Created by kylin on 14-9-22.  */ import org.apache.xmlrpc.XmlRpcException;

XML-RPC笔记

1.什么是XML-RPC RPC(Remote Procedure Call)就是相当于提供了一种"远程接口"来供外部系统调用,常用于不同平台.不同架构的系统之间互相调用. XML-RPC(RPCXML Remote Procedure Call)是通过HTTP传输XML来实现远程过程调用的RPC,因为是基于HTTP.并且使用XML文本的方式传输命令和数据,所以兼容性更好,能够跨域不同的操作系统.不同的编程语言进行远程过程调用,凡有所得,必有所失,在兼容性好的同时速度也会慢下来. 一般

XML-RPC技术

-------------本文参考刘洋,魏飞等编著的<精通jboss---EJB与webservice开发精解> XML-RPC技术的实质就是用XML描述你所需要的远程调用方法,并通过HTTP来传送这些XML数据 Apache XML-RPC实现工具:可以到以下网址下载:http://download.csdn.net/detail/u013998070/8563005 一:独立安装和启动: 1.将下载的xmlrpc.zip文件解压到你的工作目录下,可以找到xmlrpc-2.0.1.jar 2

XML-RPC

XML-RPC的全称是XML Remote Procedure Call,即XML(标准通用标记语言下的一个子集)远程方法调用.它是一套允许运行在不同操作系统.不同环境的程序实现基于Internet过程调用的规范和一系列的实现.这种远程过程调用使用http作为传输协议,XML作为传送信息的编码格式.XML-RPC的定义尽可能的保持了简单,但同时能够传送.处理.返回复杂的数据结构. 基本介绍 XML-RPC是工作在Internet上的远程过程调用协议.一个XML-RPC消息就是一个请求体为xml的

转 MetaWeblog API 编写

如今,许多人都熟悉个人和公司或业界主办的博客.后者明显成为了传统公司和行业网站的下一代新兴产物.博客的内容涉及从简洁的特制产品公告和公共关系到实用且深刻的主题探索,这些主题可能对公司的产品或行业的未来方向相关. 常用缩写词 API:应用程序编程接口 FTP:文件传输协议 HTTP:超文本传输协议 IT:信息技术 MIME:多媒体 Internet 邮件扩展(Multimedia Internet Mail Extensions) RFC:请求注解(Request for comments) RP

远程过程调用(RPC)详解

原文同步至 http://waylau.com/remote-procedure-calls/ 本文介绍了什么是远程过程调用(RPC),RPC 有哪些常用的方法,RPC 经历了哪些发展阶段,以及比较了各种 RPC 技术的优劣. 什么是 RPC RPC 是远程过程调用(Remote Procedure Call)的缩写形式,Birrell 和 Nelson 在 1984 发表于 ACM Transactions on Computer Systems 的论文<Implementing remote

Linux 套接字编程中的 5 个隐患

在异构环境中开发可靠的网络应用程序 M. Tim Jones ([email protected]), 资深软件工程师, Emulex 简介: Socket API 是网络应用程序开发中实际应用的标准 API.尽管该 API 简单,但是开发新手可能会经历一些常见的问题.本文识别一些最常见的隐患并向您显示如何避免它们. 发布日期: 2005 年 10 月 08 日 级别: 中级 访问情况 : 13059 次浏览 评论: 0 (查看 | 添加评论 - 登录)  平均分 (34个评分)为本文评分 在

bugzilla4的xmlrpc接口api调用实现分享: xmlrpc + https + cookies + httpclient +bugzilla + java实现加密通信下的xmlrpc接口调用并解决登陆保持会话功能

xmlrpc .  https . cookies . httpclient.bugzilla . java实现加密通信下的xmlrpc接口调用并解决登陆保持会话功能,网上针对bugzilla的实现很少,针对xmlrpc的有但是基本都是http协议的,https下的认证处理比较麻烦,而且会话保持也是基本没有太多共享,所以本人决定结合xmlrpc\bugzilla官方文档,网友文章,结合个人经验总结而成,已经在window2007 64+jdk7位机器上调试通过 手把手教你如何实现: 第一步: 在

关于java web开发需要哪些技术要求(简单的web界面管理系统)

目前, 国内外信息化建设已经进入基于Web应用为核心的阶段, Java作为应用于网络的最好语言,前景无限看好.然而,就算用Java建造一个不是很烦琐的web应用,也不是件轻松的事情.概括一下,实施Java的WEB项目需要掌握的技术如下: lJava语言 l面向对象分析设计思想 l设计模式和框架结构 lXML语言 l网页脚本语言 l数据库 l应用服务器 l集成开发环境 下面我们具体地看每个技术. 1.Java语言 Java语言体系比较庞大,包括多个模块.从WEB项目应用角度讲有JSP.Servle