从零开始调用一个手机号归属地查询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 对象,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.启动程序,得到返回的城市、运营商

				
时间: 2024-10-14 04:48:20

从零开始调用一个手机号归属地查询API的相关文章

手机号归属地查询

前言: 本人在学习PHP,做这个也是借鉴百度示例和其他的程序.有兴趣的小伙伴可以一块交流的 首先,html查询页面 <h2>手机号归属地查询</h2> <form action='phone.php' method='get'> <label for='phone'>手机号:</label> <input type="text"name='phone' placeholder='例如 13000000000'/>

建立一个更高级别的查询 API:正确使用Django ORM 的方式(转)

add by zhj: 本文作者是DabApps公司的技术主管,作者认为在view中直接使用Django提供的ORM查询方法是不好的,我对此并不赞同,可能作者 写这篇文章是给Django的初学者看,所以在说明方法演进时有些罗嗦,至少方法1是没有必要说的. 本文介绍了如何给QuerySet类增加方法属性.作者写本文时,Django1.7还在开发中,没有发布.在Django1.7版本中提供了这个功能, 见https://docs.djangoproject.com/en/dev/releases/1

百度手机号码归属地查询api与返回json处理

前天无意间在网上看到百度ApiStore,然后好奇就进去看了看.正好最近在某博培训Android,刚学到java基础.抱着锻炼的心态选择手机号码归属地查询api进行练手.api地址 (http://apis.baidu.com/apistore/mobilephoneservice/mobilephone).百度官方已经给出请求示例 .我们只需要对请求结果json进行解析就可以. Java请求示例: 1 String httpUrl = "http://apis.baidu.com/apisto

手机归属地查询api

手机归属地查询:可以查询到手机号码是哪的,属于移动,联通,还是电信等一系列情况.? 详情:?http://www.haoservice.com/docs/14 示例: { "error_code": "0", "reason": "Return Successd!", "result": { "province": "浙江", "city": &q

手机号码归属地查询api接口

淘宝网 API地址: http://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=15850781443参数: tel:手机号码 返回:JSON 拍拍 API地址: http://virtual.paipai.com/extinfo/GetMobileProductInfo?mobile=15850781443&amount=10000&callname=getPhoneNumInfoExtCallback参数: mobile:手机号码

手机号码归属地查询api

淘宝网 API地址: http://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=15850781443 参数: tel:手机号码 返回:JSON 拍拍 API地址: http://virtual.paipai.com/extinfo/GetMobileProductInfo?mobile=15850781443&amount=10000&callname=getPhoneNumInfoExtCallback 参数: mobile:手机

C#------手机号归属地查询(查询数据)

using MySql.Data.MySqlClient; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Wind

【转】建立一个更高级别的查询 API:正确使用Django ORM 的方式

这个就比较深入啦... http://www.oschina.net/translate/higher-level-query-api-django-orm 结论: 在视图和其他高级应用中使用源生的ORM查询代码不是很好的主意.而是用django-model-utils中的PassThroughManager将我们新加的自定义QuerySet API加进你的模型中,这能给你以下好处:     啰嗦代码少,并且更健壮.     增加DRY,增强抽象级别.     将所属的业务逻辑推送至对应的域模型

Android---56---Android应用调用Web Service/号码归属地查询

使用Android应用调用Web Service 需要工具: ksoap2-android 下载地址:http://pan.baidu.com/s/1jGL6b10 build path将ksoap2-android 添加到项目工程中 先将ksoap2-android 包导入 libs目录下,右键build path -> add to build path 点击项目工程名,右键 build path -> configure build path 在ksoap2-android这个包前面打上