從零開始調用一個手機號歸屬地查詢API

     自從過上程序員的生活,身邊總是或多或少的提及一些API(應用程序接口),網上各種入門教程、實例大把大把,有的只是貼上部分代碼,也不給註釋, 寫Demo的時候連編譯都無法通過。下面我從小白開始來介紹下後臺調用手機API的詳細步驟

     1. 準備工作,查閱相關接口信息,部分爲收費,畢竟很多都是商業接口

接口地址

           http://sj.apidata.cn/

請求參數

參數名參數說明
mobile 要查詢的手機號碼。
callback 需要JSONP格式的返回數據時需要指定callback。

請求示例

           http://sj.apidata.cn/?mobile=13488888888

返回字段

 
字段名字段類型字段說明
status integer 接口請求狀態:0=請求失敗,1=請求成功
data object 返回的結果數據對象
message string 返回的消息,請求失敗時返回失敗原因
data節點字段說明:
字段名字段類型字段說明
prefix integer 手機號碼號段。
mobile string 查詢的手機號碼
province string 歸屬地省份名稱。
city string 歸屬地城市名稱
isp string 歸屬的運營商名稱
code integer 歸屬地行政編號
zipcode integer 歸屬地郵政編碼
types string 手機號碼卡信息

返回示例{

    "status": 1, 
    "data": {
        "prefix": 138, 
        "province": "雲南", 
        "city": "昆明", 
        "isp": "移動", 
        "code": 871, 
        "zipcode": 650500, 
        "types": "中國移動 GSM", 
        "mobile": "13888888888"
    }, 
    "message":"success"
}

目前爲止,以上的信息都是接口網站提供的信息,我們代碼只需要接口地址+參數名稱,其他的作了解即可

2.開始寫邏輯代碼,總的來說,代碼量很少,按照邏輯一行一行寫,發送請求,處理返回結果
  private void GetNumInform(string  num) 
        {
            string url = "http://sj.apidata.cn/?mobile=" + num;
            //請求數據
            HttpWebRequest res = (HttpWebRequest)WebRequest.Create(url);
            //方法名
            res.Method = "GET";
            //獲取響應數據
            HttpWebResponse resp = (HttpWebResponse)res.GetResponse();           
            //讀取數據
            StreamReader sr = new StreamReader(resp.GetResponseStream(),Encoding.UTF8);
            //編譯成字符串
            string resphtml = sr.ReadToEnd();
            
            #region Demo1
            //獲取Json數據對象
            NumDes numdes = JsonConvert.DeserializeObject<NumDes>(resphtml);
            string city = numdes.data["city"].ToString();
            string isp = numdes.data["isp"].ToString();

            #endregion
            
            #region Demo2
            JObject numdbers = JObject.Parse(resphtml);
            string c = numdbers["data"]["city"].ToString();
            #endregion
            
            TextBox2.Text = city + isp;
           
        }

  3. 如果碼完上述代碼,發現無法識別JObject、JsonConvert 對象,那麼恭喜你,需要安裝Newtonsoft包,它藏在VS自帶的Nuget包中,只需要安裝就可以

   依次打開: 工具-Nuget程序包管理器-程序包管理器控制檯

   輸入:  Install-Package Newtonsoft.json

   

 如果提示安裝失敗,或者版本不一致,需要Nuget升級到最新版本,則在依舊在管理列表中先卸載Nuget包,然後在重新安裝便是最新版本

  4. 如果選擇上面Demo1的方法, 就需要額外新建一個 numdes 對象的實體類,創建與接口網站返回值對應的屬性,在http://sj.apidata.cn/中,返回的字段爲:stasus、data、message,所以在新建的類中寫入對應的成員字段,如下

  public class NumDes
    {
        public int status { get; set; }
        public Dictionary<string,string> data { get; set; }
        public string message { get; set; }
    }

5.啓動程序,得到返回的城市、運營商

權當做學習筆記

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章