Java项目开发心得(一):利用Java技术实现查询手机号码归属地

news/2024/10/18 6:08:04/

      鉴于最近项目涉及到查询归属地的问题,今天在此做一下技术分享,如果有更好的建议,还请读者大神指出。

      回归正题,关于手机号码归属地,想要查询的无非是运行商、省份、市之类的信息,那么就会涉及到Http请求以及相关的第三方查询接口。好的,下面就开始讲重点了。

      首先,你得有一个请求地址也就是第三方的接口地址,否则,鬼知道你要往哪边跑。目前,大部分的第三方接口都差不多,例如:http://apis.juhe.cn/mobile/get。问题在于后面需要传入的手机号、申请到的关键钥匙KEY以及数据类型。当然,数据类型这块可以先不考虑,关键钥匙KEY需要自己去申请,这点很重要,没有钥匙去开毛线锁。
还有一个,就是userAgent,这东西百度百科给出的解释是用户代理,其实无非是让服务器去识别用户的操作系统以及版本,浏览器引擎相关之类的信息,这个也比较重要,否则容易出现页面不能正常显示。Http请求就比较简单了,变动不是很大。

  public static String net(String strUrl, Map<String,String> map,String method) throws Exception {
       HttpURLConnection conn = null;
       BufferedReader reader = null;
       String rs = null;
       try {
           StringBuffer sb = new StringBuffer();
           if((method==null || method.equals("GET")) && map!=null){
               strUrl = strUrl+"?"+UrlEncode(map);
           }
           URL url = new URL(strUrl);
           conn = (HttpURLConnection) url.openConnection();
           if(method==null || method.equals("GET")){
               conn.setRequestMethod("GET");
           }else{
               conn.setRequestMethod("POST");
               conn.setDoOutput(true);
           }
           conn.setRequestProperty("User-agent", userAgent);
           conn.setUseCaches(false);
           conn.setConnectTimeout(DEF_CONN_TIMEOUT);
           conn.setReadTimeout(DEF_READ_TIMEOUT);
           conn.setInstanceFollowRedirects(false);
           conn.connect();
           if (map!= null && method.equals("POST")) {
               try {
                   DataOutputStream out = new DataOutputStream(conn.getOutputStream());
                   out.writeBytes(UrlEncode(map));
               } catch (Exception e) {
                   e.printStackTrace();
               }
           }
           InputStream is = conn.getInputStream();
           reader = new BufferedReader(new InputStreamReader(is, DEF_CHATSET));
           String strRead = null;
           while ((strRead = reader.readLine()) != null) {
               sb.append(strRead);
           }
           rs = sb.toString();
       } catch (IOException e) {
           e.printStackTrace();
       } finally {
           if (reader != null) {
               reader.close();
           }
           if (conn != null) {
               conn.disconnect();
           }
       }
       return rs;
   }

      接下来的事情就比较重点了,上面的方法是时候要起作用了。定义一个变量去接收net()方法返回的结果,然后转为json格式的数据。map存储传入数据键值对,然后通过json格式获取相应的数据。

  try {
            result =net(url, map, "GET");
            JSONObject object = JSONObject.fromObject(result);
            if(object.getInt("resultcode")==200){
                JSONObject jsonObject=object.getJSONObject("result");
                return jsonObject.getString("province")+"-"+jsonObject.getString("city");
            }else{
                return object.get("resultcode")+":"+object.get("reason");
            }
        } catch (Exception e) {
            e.printStackTrace();
            return e.getMessage();
        }

    总结下来,用的东西不多,不过有些东西需要考虑清楚,很简单的一个案例,希望可以对需要的人有些帮助。


http://www.ppmy.cn/news/653139.html

相关文章

怎样知道android的手机号码,如何查询自己的手机号码?看完这三种方法,再也不用担心了...

原标题&#xff1a;如何查询自己的手机号码&#xff1f;看完这三种方法&#xff0c;再也不用担心了 导语&#xff1a;现在智能手机如此盛行的时代&#xff0c;相信很多人有不止一部手机&#xff0c;这样就会出现自己的手机号码记不住的情况&#xff0c;身边经常有朋友遇到过自己…

手机号码或账号查询支付宝名字和性别

如何根据手机号或邮箱号判断支付宝账号是否存在? 打开手机上的支付宝程序&#xff0c;点击转账,点击支付宝转账&#xff0c;此时会出现输入框&#xff0c;在这里&#xff0c;我们随便输入一个账号&#xff0c;点击下一步&#xff0c;如果账号存在&#xff0c;则支付宝会进入下…

通过服务器能查到对方的信息吗,来看!通过微博用户名能查到对方什么信息?...

古语有云:天网恢恢、疏而不漏!这句话是真的么?现实社会中我不知道。但是在互联网上,这句话在Internet上是很软弱的。读完我这篇文,就可以知道。在网络上触犯现行法律,即便于安公部门立案调查,未必就“落入法网” 注:本文仅做技术研讨,并非讨论如何在犯罪后逃脱法律的惩…

【第10篇】Python爬虫实战-手机归属地查询

本章教程&#xff0c;实现手机号码归属地查询。 目标网址&#xff1a;手机号码归属地查询,手机号码查询,手机号码查询API接口 目录 一、程序代码 二、运行结果 一、程序代码 # !/usr/bin/python # -*- coding: UTF-8 -*- """ author: Roc-xb """…

python查询手机号信息

# 1.引入requests import requests while True:print(* 欢迎使用手机号信息查询工具 *)print()query_phone int(input(* 请输入您要查询的手机号:))# 2.拼接完整url地址url http://apis.juhe.cn/mobile/get?phone%s&key89baea64806cf2020fed945e44a65dd2 % …

微信代挂定位服务器,用微信偷看对方位置,通过微信知道对方位置

摘要&#xff1a; 第一步&#xff1a;首先在搜索栏里搜索“群玩助手”小程序&#xff0c;搜到后&#xff0c;点击进入。偷偷查对方微信位置以上是共享信息的方法&#xff0c;我们还能通过发送位置信息&#xff0c;让自己的好友快速的找到我们&#xff0c;仍然打开"定位&qu…

android通讯录根据手机号码查询姓名

最近有个关于通讯录开发的需求&#xff0c;需求很简单&#xff1a;根据手机号码查询姓名。之前有获取通讯录列表的代码如下&#xff1a; /*** 获取本机手机联系人列表* * author yinbiao* date 2016-4-5 上午11:03:48* param context* return*/public synchronized static List…

奇思妙想,获取对方手机通信录

奇思妙想&#xff0c;获取对方手机通信录 最近看了点文章&#xff0c;感觉自己飘了。&#xff08;我活在自己的幻想里&#xff09;&#xff0c; 这次做个实验&#xff0c;来给大家介绍介绍一些灰黑产业的套路。代码粗糙&#xff0c;路子野。 首先来个背景&#xff0c;接着小明的…