自从过上程序员的生活,身边总是或多或少的提及一些API(应用程序接口),网上各种入门教程、实例大把大把,有的只是贴上部分代码,也不给注释, 写Demo的时候连编译都无法通过。下面我从小白开始来介绍下后台调用手机API的详细步骤
1. 准备工作,查阅相关接口信息,部分为收费,毕竟很多都是商业接口
接口地址
请求参数
参数名 | 参数说明 |
---|---|
mobile | 要查询的手机号码。 |
callback | 需要JSONP格式的返回数据时需要指定callback。 |
请求示例
返回字段
字段名 | 字段类型 | 字段说明 |
---|---|---|
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.启动程序,得到返回的城市、运营商
权当做学习笔记
从零开始调用一个手机号归属地查询API的更多相关文章
-
通讯服务类API调用的代码示例合集:短信服务、手机号归属地查询、电信基站查询等
以下示例代码适用于 www.apishop.net 网站下的API,使用本文提及的接口调用代码示例前,您需要先申请相应的API服务. 短信服务:通知类和验证码短信,全国三网合一通道,5秒内到达,费用低 ...
-
免费的手机号码归属地查询API接口文档
聚合数据手机号码归属四查询API接口,根据手机号码或手机号码的前7位,查询手机号码归属地信息,包括省份 .城市.区号.邮编.运营商和卡类型. 通过链接https://www.juhe.cn/docs/ ...
-
百度手机号码归属地查询api与返回json处理
前天无意间在网上看到百度ApiStore,然后好奇就进去看了看.正好最近在某博培训Android,刚学到java基础.抱着锻炼的心态选择手机号码归属地查询api进行练手.api地址 (http://a ...
-
一个非常好的php实现手机号归属地查询接口类
前一阵子看到了一个非常好的php手机归属地查询的类,写的很精简,查询也很精确!大致代码是这样的: <?php header("Content-type:text/html;charse ...
-
建立一个更高级别的查询 API:正确使用Django ORM 的方式(转)
add by zhj: 本文作者是DabApps公司的技术主管,作者认为在view中直接使用Django提供的ORM查询方法是不好的,我对此并不赞同,可能作者 写这篇文章是给Django的初学者看,所 ...
-
手机号码归属地查询api接口
淘宝网 API地址: http://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=15850781443 参数: tel:手机号码 返回:JSON ...
-
PHP手机号码归属地查询API接口
淘宝网 API地址: http://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=15850781443 参数: tel:手机号码 返回:JSON ...
-
【转】建立一个更高级别的查询 API:正确使用Django ORM 的方式
这个就比较深入啦... http://www.oschina.net/translate/higher-level-query-api-django-orm 结论: 在视图和其他高级应用中使用源生的O ...
-
几个免费 IP 归属地查询 API
1.淘宝:同个IP不能连续查询,需要时间间隔 http://ip.taobao.com/service/getIpInfo.php?ip=114.114.114.114 返回结果 { "co ...
随机推荐
-
使用Akka.net开发第一个分布式应用
系列主题:基于消息的软件架构模型演变 既然这个系列的主题是"基于消息的架构模型演变",少不了说说Actor模型.Akka.net是一个基于Actor模型的分布式框架.如果你对分布式 ...
-
解决微信公众号OAuth出现40029(invalid code,不合法的oauth_code)的错误
关于OAuth 官方教程:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842&token=&la ...
-
winform 进程,线程
进程:一个程序就是一个进程,但是也有一个程序需要多个进程来支持的情况 进程要使用的类是:Process它在命名空间:System.Diagnostics; 静态方法Start(); 点击按钮打开一个程 ...
-
洛谷 P1372 又是毕业季I Label:None
题目背景 “叮铃铃铃”,随着高考最后一科结考铃声的敲响,三年青春时光顿时凝固于此刻.毕业的欣喜怎敌那离别的不舍,憧憬着未来仍毋忘逝去的歌.1000多个日夜的欢笑和泪水,全凝聚在毕业晚会上,相信,这一定 ...
-
Android开发 MMS支持 创建和编辑MMS
Composing and editing MMS在Android Mms 应用里面的具体实现形式,或数据结构是SlideshowModel,它是一个每个节点为SlideModel的 ArrayLis ...
-
ARM 之LCD和LCD控制器
既然提到 了LCD那么我们首先必须要了解的就是他的种类,CD(liquid crystal display), 即液晶显示器,是这一种采用了液晶控制透光度计数来实现色彩的显示器,他与传统的CRT显示 ...
-
【翻译】Microsoft Ajax Minifier 快速使用指南(与VS集成使用) 编译后直接压缩项目的JS或CSS文件
网上找了好久终于找到一个能跟VS集成使用的JS和CSS压缩工具,因为害怕忘记,所以给转发过来,顺便翻译一下,大学那会儿学的英语基本上都已经还给老师了,所以翻译的不太好,不过能看懂就成,对吧? 原文地址 ...
-
jquery里面的$.each()方法
$.each可以迭代jquery对象和数组 $(selector).each()专注于jquery对象的遍历
-
vue-cli 3.0 图片路径问题(何时使用 public 文件夹)
1. 图片放入public文件夹下时 参考:https://cli.vuejs.org/zh/guide/html-and-static-assets.html#public-%E6%96%87%E4 ...
-
j.u.c系列(08)---之并发工具类:CountDownLatch
写在前面 CountDownLatch所描述的是”在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待“:用给定的计数 初始化 CountDownLatch.由于调用了 countDo ...