【问题标题】:How to use Cricket API for building a C# application如何使用 Cricket API 构建 C# 应用程序
【发布时间】:2021-02-13 05:15:48
【问题描述】:

我是 C# 编程的初学者。我了解 OOP 的概念,因为我知道 java。我的任务是构建一个与 CricBuzz 网站类似的桌面应用程序,即我应该显示实时日程安排和正在进行的板球比赛的比分。

我听说有一些 API 可以为我做这件事。我在网上找到了 API,但问题是,我不知道如何在我的 C# 程序中实现或使用 API。请帮帮我。

TIA。 :)

【问题讨论】:

  • 那么到目前为止你尝试了什么?
  • 以类似的方式,这里有一个例子:How to add google api to .net c#
  • 我不知道该怎么做!我实际上需要从头开始。一直在寻找某种教程来了解实现 API 的过程。找不到任何东西。我有一个我认为应该使用的 URL,对吗?我获得 API 的链接来自 www.cricapi.com 我现在不知道如何处理它请帮助

标签: c# api


【解决方案1】:

使用json2csharp 生成的实体。 使用 JavaScriptSerializer 反序列化 json 和一个简单的顺序 WebClient 调用来下载 json。您可以改进它的质量和组织,尝试异步、Newtonsoft.Json 进行序列化等。这只是一种快速而肮脏的方法。

    using System.Collections.Generic;
    using JsSerializer = System.Web.Script.Serialization.JavaScriptSerializer;
    using System.Net;

    //
    // http://cricapi.com/api/cricket/
    //
    namespace CricApi.Cricket
    {
       public class Provider
        {
            public string url { get; set; }
            public string source { get; set; }
            public string pubDate { get; set; }
        }
        
        public class Datum
        {
            public string title { get; set; }
            public string description { get; set; }
            public string unique_id { get; set; }
        }
        
        public class RootObject
        {
            public Provider provider { get; set; }
            public List<Datum> data { get; set; }
            public bool cache { get; set; }
        }
    }

    //
    //http://cricapi.com/api/cricketScore?unique_id=946981
    //http://cricapi.com/api/cricketScore?unique_id=946765
    //
    namespace CricApi.CricketScore
    {
      public class Provider
      {
        public string pubDate { get; set; }
        public string source { get; set; }
        public string url { get; set; }
      }
    
      public class RootObject
      {
        public bool cache { get; set; }
        public string inningsRequirement { get; set; }
        public string team2 { get; set; }
        public string team1 { get; set; }
        public string score { get; set; }
        public Provider provider { get; set; }
      }
    }
    // 
    // how to use this
    //
    namespace CricApi
    {
      class Program
      {
        static void Main (string[] args)
        {
        
          WebClient client = new WebClient();
          
          // Download cricket info
          //  dynamic dyn = JsonConvert.DeserializeObject(res);
          string cricketJson = client.DownloadString("http://cricapi.com/api/cricket/");
          Cricket.RootObject cro = new JsSerializer().Deserialize<Cricket.RootObject>(cricketJson);
    
          // Download cricket score info
          foreach (var datum in cro.data)
          {
            string uri = "http://cricapi.com/api/cricketScore?unique_id=" + datum.unique_id;
            string cricketScoreJson = client.DownloadString(uri);
            CricketScore.RootObject csro = new JsSerializer().Deserialize<CricketScore.RootObject>(cricketScoreJson);
          }
    
        }
      }
    }

【讨论】:

    猜你喜欢
    • 2014-04-08
    • 2012-07-22
    • 1970-01-01
    • 1970-01-01
    • 2017-04-07
    • 2012-12-17
    • 2017-08-05
    • 1970-01-01
    • 2014-12-27
    相关资源
    最近更新 更多