码迷,mamicode.com
首页 > 移动开发 > 详细

从零开始调用一个手机号归属地查询API

时间:2016-10-28 20:16:45      阅读:345      评论:0      收藏:0      [点我收藏+]

标签:container   技术   types   ref   bre   property   ade   新建   encoding   

     自从过上程序员的生活,身边总是或多或少的提及一些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 对象,VS自带的有Nuget包,里面有我们需要的Newtonsoft包,只需要安装就可以

   依次打开: 工具-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.启动程序,得到返回的城市、运营商

技术分享

 

   

 




从零开始调用一个手机号归属地查询API

标签:container   技术   types   ref   bre   property   ade   新建   encoding   

原文地址:http://www.cnblogs.com/Sientuo/p/6008865.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!