在工作中需要自定义一个UDF类,在hive中对手机号解析,得到手机号的归属地和运营商.在网上查找许久,有的API已经过时有的需要申请注册并且还有次数等一些限制,最终选定了某度的免费API
"http://mobsec-dianhua.baidu.com/dianhua_api/open/location?tel=" + mobileNumber;
目前还没遇到次数限制也不需要过多的其他条件,只需要通过对API返回的JSON结果进行分析来得到需要的内容.
public static String getMobileCity(String mobileNumber) {
//百度的API地址
String urlString = "http://mobsec-dianhua.baidu.com/dianhua_api/open/location?tel=" + mobileNumber;
StringBuilder sb = new StringBuilder();
BufferedReader buffer;
String provinces = "";
String city = "";
String operators = "";
try {
URL url = new URL(urlString);
//获取URL地址中的页面内容
InputStream in = url.openStream();
// 解决乱码问题
buffer = new BufferedReader(new InputStreamReader(in, "utf8"));
String line = null;
//一行一行的读取数据
while ((line = buffer.read