2016-11-17 6 views
2

はここでここで C#でXML-RPC仕様に基づいたAPIを呼び出す方法は?

<?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>[email protected]</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コンソールアプリケーション。 しかし、サーバーに接続されませんでした。どのように私はこれを呼び出すことができますAPIエンドポイントを使用して誰に教えてくださいC#

+1

http://xml-rpc.net/faq/xmlrpcnetfaq-2-5-0.html#2.1 - 助けてください –

+0

@AmitKumarGhoshはい、非常に役に立ちました、ありがとうございました。 –

答えて

1

ステップ1:インストールNuGet "xml-rpc.net"

ステップ3:サンプルを作成.NET

ステップ2でコンソールアプリケーションを作成このようなモデルのクラスをリクエストすると、

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:名前空間using CookComputing.XmlRpc; の助けを借り形態IXmlRpcProxy基底クラス を継承さインタフェースを作成し、このインターフェイスにはエンドポイントメソッドが含まれている必要があります。フィルタXmlRpcUrlAPIリソースを装飾する必要があります。

[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 = "[email protected]"; 
      response = proxy.login(request); 
     } 
    } 

注:上記要求応答モデルクラスは、すべてのプロパティとプロパティ名は、エンドポイントのリクエスト、レスポンスのペイロードにslimierする必要があります含まれている必要があります。

関連する問題