文章出處
文章列表
自從過上程序員的生活,身邊總是或多或少的提及一些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.啟動程序,得到返回的城市、運營商
權當做學習筆記
文章列表
全站熱搜