如何在 C# 中调用基于 XML-RPC 规范的 API?
How to call an API which is based on XML-RPC specification in C#?
这是我的样品请求,
<?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 端点?
第 1 步:在 .NET
中创建了一个 控制台应用程序
第 2 步:安装 NuGet“xml-rpc.net”
第 3 步:创建示例 请求 模型 class 像这样,
public class request
{
public string username { get; set; }
public string password { get; set; }
}
第 4 步:创建示例 响应 模型 class 像这样,
public class response
{
public int id { get; set; }
public int status { get; set; }
}
第 5 步:创建一个从 IXmlRpcProxy
基础 class 继承而来的 接口
在 命名空间 using CookComputing.XmlRpc;
的帮助下
这个接口必须包含我们的端点方法,它应该用 filter XmlRpcUrl
装饰 API 资源。
[XmlRpcUrl("https://api.XXX.com/XXX")]
public interface FlRPC : IXmlRpcProxy
{
[XmlRpcMethod("login")]//endpoint name
response login(request request);
}
第 6 步:要调用 XML-RPC 服务器,必须使用 proxy[=46= 的实例] class。
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,responsemodelclass必须包含所有属性和 属性 名称对于端点请求响应的负载应该更苗条。
这是我的样品请求,
<?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 端点?
第 1 步:在 .NET
中创建了一个 控制台应用程序第 2 步:安装 NuGet“xml-rpc.net”
第 3 步:创建示例 请求 模型 class 像这样,
public class request
{
public string username { get; set; }
public string password { get; set; }
}
第 4 步:创建示例 响应 模型 class 像这样,
public class response
{
public int id { get; set; }
public int status { get; set; }
}
第 5 步:创建一个从 IXmlRpcProxy
基础 class 继承而来的 接口
在 命名空间 using CookComputing.XmlRpc;
的帮助下
这个接口必须包含我们的端点方法,它应该用 filter XmlRpcUrl
装饰 API 资源。
[XmlRpcUrl("https://api.XXX.com/XXX")]
public interface FlRPC : IXmlRpcProxy
{
[XmlRpcMethod("login")]//endpoint name
response login(request request);
}
第 6 步:要调用 XML-RPC 服务器,必须使用 proxy[=46= 的实例] class。
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,responsemodelclass必须包含所有属性和 属性 名称对于端点请求响应的负载应该更苗条。