如何在c#中调用基于XML-RPC规范的API
本文关键字:XML-RPC API 调用 | 更新日期: 2023-09-27 18:18:14
这是我的示例请求,
<?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>
问题:
我试图从调用API端点。. NET控制台应用程序。但是,它没有连接到服务器。谁能告诉我如何使用 c# 调用这个API端点?
步骤1:在中创建控制台应用程序。
步骤2:安装 NuGet " xml-rpc.net "
步骤3:创建一个示例请求模型类,如下所示
public class request
{
public string username { get; set; }
public string password { get; set; }
}
步骤4:创建一个示例响应模型类,如下所示,
public class response
{
public int id { get; set; }
public int status { get; set; }
}
步骤5:创建一个继承自IXmlRpcProxy
基类的接口使用命名空间 using CookComputing.XmlRpc;
这个接口必须包含我们的端点方法,它应该用过滤器 XmlRpcUrl
装饰,具有API资源。
[XmlRpcUrl("https://api.XXX.com/XXX")]
public interface FlRPC : IXmlRpcProxy
{
[XmlRpcMethod("login")]//endpoint name
response login(request request);
}
步骤6:要调用XML-RPC服务器,必须使用代理类的实例。
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);
}
}
注意:上面的request, response模型类必须包含所有的属性,并且属性名应该更接近端点的请求、响应的有效负载。