欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

利用百度API查询手机号归属地 有大用 有大用 有大用

利用百度Api查询手机号归属地

先到百度API官网查看其有关说明,这是其官网:http://apistore.baidu.com/ 
可在此页面找到相关说明。

打开网址可以看到好几个号码归属地的查询,有些是收费的,有些免费,如果调用不是特别频繁,需要的信息量不是特别多的话,免费的就足够了。我开始看的是第一个接口:http://apistore.baidu.com/apiworks/servicedetail/117.html 
但是百度自己的例子中就可以看出这个接口并不符合我的需求,我要的是可以查询到省市的,显然这个接口只返回给我省。 

再来看这个 http://apistore.baidu.com/apiworks/servicedetail/794.html 
首先看百度所给的例子的结果: 
这里写图片描述 
看来这个可以了,百度给了几种不同语言的例子,我只看Java的:

String httpUrl = “http://apis.baidu.com/apistore/mobilenumber/mobilenumber“; 
String httpArg = “phone=15210011578”; 
String jsonResult = request(httpUrl, httpArg); 
System.out.println(jsonResult);

/** 
* @param urlAll 
* :请求接口 
* @param httpArg 
* :参数 
* @return 返回结果 
*/ 
public static String request(String httpUrl, String httpArg) { 
BufferedReader reader = null; 
String result = null; 
StringBuffer sbf = new StringBuffer(); 
httpUrl = httpUrl + “?” + httpArg;

try {
    URL url = new URL(httpUrl);
    HttpURLConnection connection = (HttpURLConnection) url
            .openConnection();
    connection.setRequestMethod("GET");
    // 填入apikey到HTTP header
    connection.setRequestProperty("apikey",  "您自己的apikey");
    connection.connect();
    InputStream is = connection.getInputStream();
    reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
    String strRead = null;
    while ((strRead = reader.readLine()) != null) {
        sbf.append(strRead);
        sbf.append("\r\n");
    }
    reader.close();
    result = sbf.toString();
} catch (Exception e) {
    e.printStackTrace();
}
return result;


}

这里边需要有自己的百度apikey 可参考这个网页http://app.baidu.com/static/cms/getapikey.html

可以把这个方法封装一下作为一个工具类使用了。

来自  http://blog.csdn.net/wbjylk/article/details/50898287

 

手机号码归属地
服务商: APIStore (企业)
所属分类: 服务类API、生活常用
更新时间: 2016-01-04
apikey: 获取apikey
服务简介: 查询手机号的归属地信息。不收费,暂不限制峰值,大规模应用调用只需邮件apistore报备应用和联系人信息,否则视为恶意攻击禁止访问。
  • 特色功能

  • API
  • 联系商家
  • 套餐
  • 错误码参照
  • 全部评论69
  • 遇到问题
  • 服务相关

接口地址 :http://apis.baidu.com/apistore/mobilenumber/mobilenumber

请求方法 :GET

请求参数(header) :
参数名类型必填参数位置描述默认值
apikey
stringheader
API密钥
您自己的apikey
请求参数(urlParam) :
参数名类型必填参数位置描述默认值
phone
numberurlParam
手机号码
15210011578
请求示例 :
curl示例
php示例
python示例
java示例
C#示例
ObjectC示例
Swift示例
   
1
<?php
2
    $ch = curl_init();
3
    $url = 'http://apis.baidu.com/apistore/mobilenumber/mobilenumber?phone=15210011578';
4
    $header = array(
5
        'apikey: 您自己的apikey',
6
    );
7
    // 添加apikey到header
8
    curl_setopt($ch, CURLOPT_HTTPHEADER  , $header);
9
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
10
    // 执行HTTP请求
11
    curl_setopt($ch , CURLOPT_URL , $url);
12
    $res = curl_exec($ch);
13
14
    var_dump(json_decode($res));
 
15
?>
   
JSON返回示例 :
{
    "errNum": 0,
    "retMsg": "success",
    "retData": {
        "phone": "15210011578",
        "prefix": "1521001",
        "supplier": "移动 ",
        "province": "北京 ",
        "city": "北京 ",
        "suit": "152卡"
    }
}
备注 :
"phone": 手机号码,
        "prefix": 手机号码前7位,
        "supplier": "移动 ",
        "province": 省份,
        "city": 城市,
        "suit": "152卡"
  •  

普通分类: