使用Web API进行业务逻辑?

时间:2013-01-29 19:03:29

标签: c# asp.net api

我的网络应用程序需要能够从Paymo http://api.paymo.biz/

获取所有项目

我熟悉JSON和XML,但我想知道的是,如何与api进行交互(调用它)。

我最好在ASP .Net中创建一个类,如PaymoManager(int apikey ....)

从那里我可以包装我需要的功能。我只需要了解,如何调用API的函数以及如何获得响应。我不熟悉web apis。


编辑:你能给我一个这方面的例子,即使有一些抽象的网址。我需要在CS文件中完成这个服务器端。

基本上是一个简单的例子,它调用someurl.com/somerequest,然后你如何收到JSON或XML ......这对于一个类来说是如何工作的。我想在课堂上这样做。

2 个答案:

答案 0 :(得分:2)

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

  

要使用Paymo API执行操作,您需要发送请求   指向方法和一些参数的Paymo webservice,以及   将收到格式化的回复。

这意味着您可以使用网址中的WebClient to download a string

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

根据您指定的格式,您可以将回复解析为XMLJSON

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);

答案 1 :(得分: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);
    }
  }