.net 如何在C#中调用基于XML-RPC规范的API?

ffvjumwh  于 2023-02-17  发布在  .NET
关注(0)|答案(1)|浏览(170)

这是我的申请样本

<?xml version=”1.0” encoding=”UTF-8”?>
 <methodCall>
  <methodName>login</methodName>
   <params>
    <param>
     <value>
      <struct>
       <member>
        <name>password</name>
        <value><string>XXXXXXXXXX</string></value>
       </member>
       <member>
        <name>username</name>
        <value><string>XXXX@XXX.com</string></value>
       </member>
    </struct>
  </value>
 </param>
 </params>
</methodCall>

以下是我对请求的成功响应示例:

<struct>
  <member>
    <name>id</name>
    <value><string>12345</string></value>
  </member>
  <member>
    <name>api_status</name>
    <value><int>200</int></value>
  </member>
</struct>

问题:
我试图从**. NET控制台应用程序调用API终结点。但是,它没有连接到服务器。有人能告诉我如何使用C#调用此API终结点吗?

xuo3flqw

xuo3flqw1#

步骤1:在**.NET中创建控制台应用程序**
第2步:安装NuGetxml-rpc.net
第3步:创建了一个示例request模型类,如下所示:

public class request
    {
        public string username { get; set; }
        public string password { get; set; }
    }

第4步:创建了一个示例response模型类,如下所示:

public class response
    {
        public int id { get; set; }
        public int status { get; set; }        
    }

第5步:创建一个接口,它是在命名空间using CookComputing.XmlRpc;的帮助下从IXmlRpcProxy基类继承的,这个接口必须包含我们的端点方法,并且应该用具有API资源的filterXmlRpcUrl装饰。

[XmlRpcUrl("https://api.XXX.com/XXX")]
    public interface FlRPC : IXmlRpcProxy
    {
        [XmlRpcMethod("login")]//endpoint name
        response login(request request);
    }

步骤6:要调用XML-RPC服务器,必须使用proxy类的示例。

class Program
    {
        static void Main(string[] args)
        {
            response response = new response();
            request request = new request();
            FlRPC proxy = XmlRpcProxyGen.Create<FlRPC>();
            request.password = "xxxxxxxx";
            request.username = "xxxx@xxxx.org";
            response = proxy.login(request);
        }
    }

注意:上述requestresponse模型类必须包含所有属性,并且属性名称应与端点的request,response的有效负载更接近。

相关问题