调用第三方API ,实现手机号码归属地及运营商查询

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

运行结果:

中国电信

西双版纳

西双版纳,中国电信

代码:

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;public class NewMobile {public static void main(String[] args) {System.out.println(NewMobile.getCarrier("18988176532"));System.out.println(NewMobile.getCity("18988176532"));System.out.println(NewMobile.getResult("18988176532"));}//得到归属地public static String getCity(String tel) {try{//获取返回结果String json = httpRequest(tel).toString();//拆分xml页面代码String[] a = json.split("att");String[] b = a[1].split(",");//归属地String city = b[2].replace(">", "").replace("</", "");return city;}catch(Exception e){return "暂无相关归属地信息!";}}//得到运营商public static String getCarrier(String tel) {try{//获取返回结果String json = httpRequest(tel).toString();//拆分xml页面代码String[] a = json.split("att");String[] c = a[2].split("operators");//运营商String carrier = c[1].replace(">", "").replace("</", "");return carrier;}catch(Exception e){return "暂无相关运营商信息!";}}//得归属地,运营商。如:西双版纳,中国电信public static String getResult(String tel) {try{//获取返回结果String json = httpRequest(tel).toString();//拆分xml页面代码String[] a = json.split("att");String[] b = a[1].split(",");//归属地String city = b[2].replace(">", "").replace("</", "");String[] c = a[2].split("operators");//运营商String carrier = c[1].replace(">", "").replace("</", "");String cityAndCarrier = city+","+carrier;return cityAndCarrier;}catch(Exception e){return "暂无相关归属地、运营商信息!";}}/*** 发起http请求获取返回结果* @param tel 待查询手机号* @return String 结果字符串*/public static String httpRequest(String tel) {//组装查询地址(requestUrl 请求地址)String requestUrl = "http://api.k780.com:88/?app=phone.get&phone="+tel+"&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=xml";StringBuffer buffer = new StringBuffer();try {URL url = new URL(requestUrl);HttpURLConnection httpUrlConn = (HttpURLConnection) url.openConnection();httpUrlConn.setDoOutput(false);httpUrlConn.setDoInput(true);httpUrlConn.setUseCaches(false);httpUrlConn.setRequestMethod("GET");httpUrlConn.connect();//将返回的输入流转换成字符串InputStream inputStream = httpUrlConn.getInputStream();InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "UTF-8");BufferedReader bufferedReader = new BufferedReader(inputStreamReader);String str = null;while ((str = bufferedReader.readLine()) != null) {buffer.append(str);}bufferedReader.close();inputStreamReader.close();//释放资源inputStream.close();inputStream = null;httpUrlConn.disconnect();}catch (Exception e) {return "发起http请求后,获取返回结果失败!";}return buffer.toString();}
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/452158.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学成在线--21.课程信息修改

文章目录一.需求分析二.课程管理导航页面1.定义course_manage.vue为课程管理页面2.创建各个信息管理页面3.创建路由三.服务端1.Api接口1&#xff09;根据课程ID查询课程信息2&#xff09;修改课程信息2.Dao3.Service4.Controller四.前端1. 完成course_baseinfo.vue页面2.API方法…

HTTP协议特点

&#xff08;一&#xff09;HTTP协议是无状态的。也就是说&#xff0c;同一个客户第二次访问同一个服务器上的页面时&#xff0c;服务器的响应与第一次被访问时相同。服务器不记得访问过得这个用户&#xff0c;也不记得为这个客户服务过多少次。 &#xff08;二&#xff09;HT…

C#曲线分析平台的制作(四,highcharts+ajax加载后台数据)

在上一篇博客&#xff1a;C#曲线分析平台的制作&#xff08;三&#xff0c;三层构架echarts显示&#xff09;中已经完成了后台的三层构架的简单搭建&#xff0c;为实现后面的拓展应用开发和review 改写提供了方便。而在曲线分析平台中&#xff0c;往往有要求时间轴联动功能&…

国际C语言混乱代码大赛结果公布

国际C语言混乱代码大赛&#xff08;IOCCC, The International Obfuscated C Code Contest&#xff09;是一项国际编程赛事&#xff0c;从1984年开始&#xff0c;每年举办一次&#xff08;1997年、1999年、2002年、2003年和2006年例外&#xff09;。目的是写出最有创意的最让人难…

JDBC连接数据库(一)

原文地址http://www.cnblogs.com/hongten/archive/2011/03/29/1998311.html JDBC连接数据库 创建一个以JDBC连接数据库的程序&#xff0c;包含7个步骤&#xff1a; 1、加载JDBC驱动程序&#xff1a; 在连接数据库之前&#xff0c;首先要加载想要连接的数据库的驱动到JVM…

eclipse加速之禁用 JS、jsp 等文件的语法验证

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 去除eclipse的JS验证&#xff1a; 将windows->preference->Java Script->Validator->Errors/Warnings-> Enable Javascr…

学成在线--22.课程营销

文章目录一.需求分析二.数据模型三.服务端1.Api接口1&#xff09;查询课程营销信息2&#xff09;更新课程营销信息2.Dao3.Service4.Controller四.前端1.Api 方法2.编写 course_marketinfo.vue1&#xff09;template2&#xff09;数据对象3&#xff09;保存方法4&#xff09;在m…

电子邮件系统

&#xff08;一&#xff09;电子邮件系统的构成 1.用户代理 用户与电子邮件系统的接口&#xff0c;用户代理使用户能够通过一个很友好的接口来发送和接收邮件&#xff0c;用户代理就是一个运行在PC上的程序。 2 邮件服务器 邮件服务器的功能是发送和接收邮件&#xff0c;同…

面向对象的接口类 以及鸭子类型

1.接口类,抽象类. 2.鸭子类型(Python多态)(Python三大特性之一)Python封装 1.接口类和抽象类只是在工作中书写的一种规范. class QQ: def pay(self,money): print("使用QQ支付%s"%money) class Ali: def pay(self,money): print("使用支付宝支付%s"%money…

mysql查看binlog日志内容

2019独角兽企业重金招聘Python工程师标准>>> &#xff08;一&#xff09; binlog介绍 binlog,即二进制日志,它记录了数据库上的所有改变&#xff0c;并以二进制的形式保存在磁盘中&#xff1b; 它可以用来查看数据库的变更历史、数据库增量备份和恢复、Mysql的复制&…

架构师:我们需要顶层设计

架构师&#xff1a;我们需要顶层设计背景&#xff1a; 某公司&#xff0c;建立的程序又被推倒&#xff0c;外人觉得很奇怪&#xff0c;这个程序的主管非常敬业&#xff0c;关注到了程序每一个细节&#xff0c;甚至包括每一个按钮的文字和位置。这个主管很委屈&#xff0c;他说…

文件传输协议FTP

文件传输协议FTP提供交互式的访问&#xff0c;允许客户指明文件的类型和格式&#xff0c;并允许文件具有存取权限。它屏蔽了个计算机系统的细节&#xff0c;因而适合于在异构网络中任意计算机之间传输文件。它提供不同种类主机系统之间的文件传输能力&#xff0c;可以提供用户对…

Centos7安装Docker教程

1.首先安装必要依赖&#xff1a; sudo yum install -y yum-utils device-mapper-persistent-data lvm22.然后添加仓库源&#xff1a; sudo sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo3.最后安装 Docker&#xff…

String.format() 方法用法解说

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 String chargeFlowUrl _AGENT_URL "?agentAccount" _AGENT_ACCOUNT "&sequence%s &phone%s &iceUrl%s &…

Choose unique values for the 'webAppRootKey' context-param in your web.xml files! 错误的解决

大意是Log4jConfigListener在获取webapp.root值时&#xff0c;被后一context的值替换掉了&#xff0c;所以要在各个项目的web.xml中配置不同的webAppRootKey值&#xff0c;随即在其中一个web.xml中添加&#xff1a; <context-param> <param-name>webAppRootKey<…

ionic3 cordova ionic-native插件

ionic-native插件 cordova安装插件 以及 ionic-native插件使用过程以及步骤 cordova plugin add cordova-plugin-插件名称。 //安装插件npm install ionic-native/对应插件名称 --save。 //写入package.json在app.module.ts 的 providers 进行引用解释&#xff1a;cordove plug…

Diango博客--19.使用 Docker部署项目到线上服务器

文章目录1.克隆代码到服务器2.创建环境变量文件用于存放项目敏感信息3.在 .production 文件写入下面的内容并保存4.修改 Nginx 配置5.修改项目配置文件6.启动容器7.检查容器启动状况8.配置 HTTPS 证书&#xff08;没有配置域名无法配置&#xff0c;只能通过服务器 ip 以 HTTP 协…

从一生的角度看程序员的学习和发展

很多人谈学习和发展的时候&#xff0c;往往忽略人的先天自然条件&#xff0c;在这里我们从这个视角切入&#xff0c;来探讨一下程序员一生的可能轨迹。 如果把程序员的人生分为三个阶段&#xff0c;那么他们是&#xff1a; 毕业~30岁&#xff1a;这个时间段里&#xff0c;大多…

Jquery Datatable 数据填充报错:requested unknown parameter ‘XXX‘ for row xx, column xx 解决方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 报错如图&#xff1a; 解决方法见官网&#xff1a;https://datatables.net/manual/tech-notes/4 摘要如下&#xff1a; Parameter is an…

Tarjan-缩点

$Tarjan$缩点 Tarjan的第二个应用就是求缩点啦。缩点虽然比割点麻烦一点&#xff0c;但是用处也比割点要大不少。 本来要学另外两个缩点算法的,但是似乎没什么用...$MST$里确实有只能有$prim$或者只能用$kruscal$的题目&#xff0c;但是这三种缩点...在网上没有找到介绍它们之间…