zoukankan      html  css  js  c++  java
  • 调用Xmlrpc接口

    最近与xmlrpc这东西打交道,因为之前没用过,在这之前也一直没听说过这个名词,所以也不知道怎么调用。

    后来查了一下资料,分别用C# 和 Loadrunner的web(http/html) 都实现了调用操作。

    废话少说,下面就先来说一下C#是如何实现的。(当然其实语言也可以读取,这里只说一下我用到的,其实的就不作研究了。)

    1. C#实现方式

    需要去下载CookComputing.XmlRpcV2.dll这个dll的支持,以下是实现代码。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using CookComputing.XmlRpc;
    using System.Text;
    
    namespace XmlrpcTest
    {
        public class Program
        {   
            static void Main(string[] args)
            {
                IXmlrpc proxy = XmlRpcProxyGen.Create<IXmlrpc>();
                var result = proxy.login("test123", "123456");
            }
        }
        /// <summary>
        /// xmlrpc的部署的地址
        /// </summary>
        [XmlRpcUrl("http://192.168.10.11:8080/middlers")]
        public interface IXmlrpc : IXmlRpcProxy
        {
            [XmlRpcMethod("middler.login")]
            int login(string szPassportId, string szPassword);
        }
    }

     2. Loadrunner实现(更多请参考higkoo此大牛的博客:http://hi.baidu.com/higkoo/item/c7e8a33f4047cc83b711dbdc)

    /*
     * xmlrpc接口参数组成
     */
    int XmlBody()
    {
        lr_save_string(lr_eval_string(
        "<?xml version=\"1.0\" encoding=\"GB2312\"?>"
        "<methodCall>"
        "<methodName>middler.login</methodName>"
          "<params>"
                "<param>"//如果接口有多个参数都按此格式添加
                      "<value>"
                        "<string>test123</string>"
                      "</value>"
                "</param>"
                "<param>"
                      "<value>"
                        "<string>123456</string>"
                      "</value>"
                "</param>"
          "</params>"
        "</methodCall>"),"xmlStr");
    }
    
    Action()
    {
        web_add_header("User-Agent", "Apache XML RPC 3.0 (Sun HTTP Transport)");
    
        web_reg_find("Text=<int>1</int>",
                     "Search=Body",
                     "SaveCount=count_flag",
                     LAST); //获取请求返回是否有<int>1</int>
    
        XmlBody();
    
        lr_start_transaction("LoginTest");
        web_custom_request("testXmlRpc", 
                           "Method=POST", 
                           "URL=http://192.168.10.11:8080/middlers", 
                           "RecContentType=text/xml",
                           "EncType=text/xml;charset=UTF-8",
                           "Body={xmlStr}", 
                           LAST);
    
        if(atoi(lr_eval_string("{count_flag}")) == 1)
        {
            lr_end_transaction("LoginTest",LR_PASS);
        }
        else
        {
            lr_error_message("账号注册不成功,请查看原因!%s",lr_eval_string("{Account}"));
            lr_end_transaction("LoginTest",LR_FAIL);
        }
        return 0;
    }

    以上两个简单例子就完成了!欢迎各位拍砖。

  • 相关阅读:
    CentOS同步时间
    使用dnsmasq来提升CentOS上网速度
    bash的变量设置
    CentOS找回root密码
    知识学习网站
    webservice接口测试,使用SoapUI工具进行接口测试
    js中字符串转换为数字
    css颜色大全
    Table分页显示调整
    iframe中,页面转换后回到页面的顶部
  • 原文地址:https://www.cnblogs.com/Martin_Q/p/2815111.html
Copyright © 2011-2022 走看看