0

私のWebアプリケーションは、Paymohttp : //api.paymo.biz/からすべてのプロジェクトを取得できる必要があります。

私はJSONとXMLに精通していますが、私が疑問に思っているのは、APIとどのように対話するか(呼び出しを行うか)です。

理想的には、PaymoManager(int apikey ....)などのASP.Netでクラスを作成したいと思います。

そこから、必要な機能をラップできます。APIの関数を呼び出す方法と、応答を取得する方法を理解する必要があります。私はWebAPIに精通していません。


編集:抽象的なURLを使用した場合でも、この例を教えてください。CSファイルでこれを実行したサーバー側が必要です。

基本的に、someurl.com / somerequestを呼び出す簡単な例と、JSONまたはXMLをどのように受け取るか...これはクラスに関してどのように機能しますか。クラスでこれが欲しいです。

4

2 に答える 2

2

.NET 4.5 を使用している場合は、次のようにHttpClientを使用することを検討してください。

static async void Main()
    {
    try 
    {
      // Create a New HttpClient object.
      HttpClient client = new HttpClient();

      // fill in the details in the following string with your own KEY & TOKEN:
      string requestUrl = "https://api.paymo.biz/service/paymo.auth.logout?api_key=API_KEY&format=JSON&auth_token=AUTH_TOKEN"
      HttpResponseMessage response = await client.GetAsync(requestUrl );
      response.EnsureSuccessStatusCode();
      string responseBodyJSON = await response.Content.ReadAsStringAsync();
      // Above three lines can be replaced with new helper method in following line 
      // string body = await client.GetStringAsync(uri);

      Console.WriteLine(responseBodyJSON );
      // Now you can start parsing your JSON....

    }  
    catch(HttpRequestException e)
    {
      Console.WriteLine("\nException Caught!"); 
      Console.WriteLine("Message :{0} ",e.Message);
    }
  }
于 2013-01-29T19:26:15.677 に答える
2

http://api.paymo.biz/docs/misc.overview.html

Paymo API を使用してアクションを実行するには、メソッドといくつかの引数を指定して要求を Paymo Web サービスに送信する必要があり、フォーマットされた応答を受け取ります。

これは、WebClient を使用して URL から文字列をダウンロードできることを意味します。

WebClient client = new WebClient();
string reply = client.DownloadString (address);

指定した形式に応じて、応答をXMLまたはJSONとして解析できます。

XDocument xml = XDocument.Parse(reply);

// where ReplyType is a class that defines public 
// properties matching the format of the json string
JavaScriptSerializer serializer = new JavaScriptSerializer();
ReplyType abc = serializer.Deserialize<ReplyType>(reply);
于 2013-01-29T19:21:52.493 に答える