XML-RPC,是英文名称XML Remote Procedure Call的简称,即XML远程方法调用。我个人的理解是,XML是远程传输数据的形式,协议的作用是调用远程的API接口。
最初的接触是来自z-blog的一个插件。打开z-blog的官方首页,最下面有这样一句话:
安装WLWSupport插件配合使用Windows Live Writer,完美支持标签编辑,别名,摘要,上传;完全可视化写博.
这个功能就是通过XML-RPC实现的,而且是asp的实现方式。
话说回来,XML-RPC是什么神奇的东西呢?详细的介绍资料可以参考创建这个东西的官方网站XML-RPC.COM。
官方网站提供了一张图来说明这个概念:

XML-RPC在各种编程语言中都有实现,尤其是php、jsp等,当然,asp.net也有,而且还有开源的组件可用,这就是xml-rpc.net了。目前最新版本是2.4.0,使用2.0的.net framework.
虽然有了组件,新手使用起来还是有一定的难度。下面这篇教程可以帮助你快速上手:
Writing an XML-RPC server or client in ASP.Net: Part 1
Writing an XML-RPC server or client in ASP.Net: Part 2
按照上面的实例,我做了一下简化:通过XML-RPC获取网站程序的版本。
第一步,在ASP.NET中建立XML-RPC服务端。
1,把XML-RPC.NET 2.4.0的dll文件CookComputing.XmlRpcV2.dll复制到网站bin目录下。
2,创建一个ashx文件,代码如下:
view plaincopy to clipboardprint?
<!--WebHandler Language="C#" Class="xml_rpc"-->  
//页面 xml-rpc.ashx  
using System;  
using System.Web;  
using CookComputing.XmlRpc;  
[XmlRpcService(Name="ljf-xml-rpc",AutoDocumentation=true)]  
public class xml_rpc : XmlRpcService {  
    [XmlRpcMethod("showVersion")]  
    public string getVersion()  
    {  
        return "ljf xml-rpc 1.0";  
    }  
}

//页面 xml-rpc.ashx
using System;
using System.Web;

using CookComputing.XmlRpc;

[XmlRpcService(Name="ljf-xml-rpc",AutoDocumentation=true)]
public class xml_rpc : XmlRpcService {

[XmlRpcMethod("showVersion")]
    public string getVersion()
    {
        return "ljf xml-rpc 1.0";
    }

}
这样服务器端就建好了。要查看服务器端有什么方法可供调用,只要打开这个页面就可以看到方法名、参数、返回值的情况。
第二步,在另外一个网站中建立XML-RPC客户端。
1、同样要把类库CookComputing.XmlRpcV2.dll拷贝到bin目录中。
2、在App_Code中建立一个类,作为XML-RPC代理。代码如下:
view plaincopy to clipboardprint?
//类xml-rpcProxy.cs  
using System.Reflection;  
using CookComputing.XmlRpc;  
/// <SUMMARY></SUMMARY>  
/// rpcProxy 的摘要说明  
///   
[XmlRpcUrl("http://www.ljf.cn/xml-rpc.ashx")]
public class rpcProxy:XmlRpcClientProtocol  
{  
    [XmlRpcMethod("showVersion")]  
    public string showVersion()  
    {  
        //  
        // TODO: 在此处添加构造函数逻辑  
        //  
        return (string)Invoke(MethodBase.GetCurrentMethod());  
    }  

//类xml-rpcProxy.cs
using System.Reflection;
using CookComputing.XmlRpc;

///
/// rpcProxy 的摘要说明
///
[XmlRpcUrl("http://www.ljf.cn/xml-rpc.ashx")]
public class rpcProxy:XmlRpcClientProtocol
{
    [XmlRpcMethod("showVersion")]
    public string showVersion()
    {
        //
        // TODO: 在此处添加构造函数逻辑
        //
        return (string)Invoke(MethodBase.GetCurrentMethod());
    }
}

3、在普通页面中调用XML-RPC提供的方法。这里只有一个方法,也不用传参数,代码如下:
view plaincopy to clipboardprint?
//在页面xml-rpcTest.aspx的Page_Load方法中调用XML-RPC提供的方法  
       rpcProxy p = new rpcProxy();  
       Response.Write(p.showVersion()); 
    //在页面xml-rpcTest.aspx的Page_Load方法中调用XML-RPC提供的方法
        rpcProxy p = new rpcProxy();
        Response.Write(p.showVersion());
页面打印出来的结果就是上面XML-RPC返回的字符串“ljf xml-rpc 1.0”。
更多可供参考的链接:
Meng Yan ( 孟岩 )’s Weblog:XML-RPC
IBM:用 XML-RPC 开发 Web 服务: XML-RPC 中间件
博客园XML-RPC API
XML-RPC初体验
本文来源于 龙卷风资讯网 http://www.ljf.cn/ ;原文地址:http://www.ljf.cn/2010/3/Item41584.html

xml-rpc 以及 xml-rpc 在asp.net中的实现相关推荐

  1. 在asp.net中如何用javascript读取本地Xml中的数据到网页中的文本框?

    在asp.net中如何用javascript读取本地Xml中的数据到网页中的文本框? 转载于:https://www.cnblogs.com/dynasty/archive/2005/08/18/21 ...

  2. ASP.NET中XML数据的处理

    SqlDataSource和ObjectDataSource控件都是平面表格式的数据源控件,操作也相对简单,在这里我就不细说了. ASP.NET中XML数据是怎样的处理呢?下面就详细讲解. 在这里我主 ...

  3. ASP.NET中自动生成XML文件并通过XSLT显示在网页中的方法

    XML是一种很方便的描述数据的方法,其格式也比较接近HTML,因此就有了想把XML直接通过网页的形式显示在浏览器中的想法.但是直接打开XML文件,浏览器是无法解析的,只是把文档的结构原封不动地呈现出来 ...

  4. 知乎周源微信_每周源代码30-具有XML文字的VB.NET作为ASP.NET MVC的视图引擎

    知乎周源微信 I was literally in the middle of writing the post when I saw a message from Andrew Davey abou ...

  5. [FLASH IDE] [教程]Flash处理外部XML文档数据详细教程[ASP,JSP]

    准备: 首先你得有台电脑.其次是要装上Windows系统和Flash8. XML基础: 既然是处理XML文档.就要先来了解下XML文档.下面是我所了解的,有些是在Flash中用不到的. XML扩展标记 ...

  6. 网络编程 -- RPC实现原理 -- RPC -- 迭代版本V3 -- 远程方法调用 整合 Spring

    网络编程 -- RPC实现原理 -- 目录 啦啦啦 V3--RPC -- 远程方法调用 及 null的传输 + Spring 服务提供商: 1. 配置 rpc03_server.xml 注入 服务提供 ...

  7. 网络编程 -- RPC实现原理 -- RPC -- 迭代版本V4 -- 远程方法调用 整合 Spring 自动注册...

    网络编程 -- RPC实现原理 -- 目录 啦啦啦 V4--RPC -- 远程方法调用 + Spring 自动注册 服务提供商: 1. 配置 rpc04_server.xml 注入 服务提供商 rpc ...

  8. python rpc webservice_关于RPC、HTTP、WebService的区别

    关于 REST 介绍的文章已经很多了,这里只对 RPC 部分做一个介绍: RPC(远程过程调用)是什么 简单的说,RPC就是从一台机器(客户端)上通过参数传递的方式调用另一台机器(服务器)上的一个函数 ...

  9. 「RPC」简述RPC

    RPC是什么 RPC(Remote Procedure Call)远程过程调用协议,一种通过网络从远程计算机上请求服务,而不需要了解底层网络技术的协议.RPC它假定某些协议的存在,例如TPC/UDP等 ...

  10. java xml jsp_Java与XML

    Java与XML 作者:    文章来源: 发布日期:2006年06月12日 译作者: Britt McLaughlin 著 孙兆林 汪东 王鹏 译 出版日期: 2001年4月 字数: 495千字 页 ...

最新文章

  1. pthread-win32 semaphore信号量总结
  2. floatvalue 重写_Java Number floatValue()方法与示例
  3. 华裔数学家张益唐:逆境中的数学人生
  4. 淘宝如何保障业务稳定性——诺亚(Noah)自适应流控
  5. 请收下这10篇2020上半年最受欢迎的数据库技术文章
  6. java声明一个函数_java – 如何声明一个函数参数来接受抛出的函数?
  7. java为什么安装怎么慢_Java JDK下载为什么慢? 国内下载站来解决
  8. linux变utf8为sjis命令,在派上编译Linux版Onscripter-jh时出现问题
  9. 浅谈融云即时通讯服务「日志优化」
  10. c语言中switch语句流程图_C语言程序设计程序流程结构
  11. STC15F104W 使用 315/433 MHz 超再生模块发送/接收数据
  12. GPG入门 - 练习笔记
  13. 轻松掌握Logstash的grok匹配
  14. Python之路【第八篇】:面向对象的程序设计
  15. 线性代数中的线性方程组
  16. pycharmSDK is not defined for Run Configuration 解决
  17. 水质在线监测系统方案
  18. Python之文件的读写
  19. 王某与石某的分歧卡卡罗特
  20. matlab之直方图的绘制

热门文章

  1. 大战设计模式【13】—— 组合模式
  2. 两点补充——CSS3新属性以及弹性布局
  3. 深入React事件系统(React点击空白部分隐藏弹出层;React阻止事件冒泡失效)
  4. fixed 定位 苹果手机输入框触发时内容全部隐藏
  5. tinyhttp源码阅读(注释)
  6. Android 在布局容器中动态添加控件
  7. C++中cstring和int互换
  8. IOS中的枚举的写法...
  9. php 赋予最高权限,为PHP执行赋予root权限(一)
  10. kali Linux/centos7 Linux设置不会屏保