码迷,mamicode.com
首页 > 移动开发 > 详细

手机号码归属地查询免费api接口代码

时间:2014-07-18 11:29:56      阅读:460      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   java   strong   os   

根据手机号码查询用户的卡类型、运营商、归属地、区域等信息。

手机归属地实体类

package org.wx.xhelper.model;

/**
 * 手机归属地
 * @author wangxw
 * @version 1.0
 * @date Jul 9, 2014 4:03:04 PM
 */
public class PhoneBelong {

	// 电话号码
	private String phone;
	
	// 手机号码所在地区区号
	private String area;
	
	// 号码卡类型
	private String ctype;
	
	// 所属运营商
	private String operators;
	
	// 简写归属地
	private String simcall;

	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

	public String getArea() {
		return area;
	}

	public void setArea(String area) {
		this.area = area;
	}

	public String getCtype() {
		return ctype;
	}

	public void setCtype(String ctype) {
		this.ctype = ctype;
	}

	public String getOperators() {
		return operators;
	}

	public void setOperators(String operators) {
		this.operators = operators;
	}

	public String getSimcall() {
		return simcall;
	}

	public void setSimcall(String simcall) {
		this.simcall = simcall;
	}
}


手机归属地服务接口类

package org.wx.xhelper.service;

import java.io.UnsupportedEncodingException;
import java.net.URL;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.wx.xhelper.model.PhoneBelong;

/**
 * 手机归属地服务接口类
 * @author wangxw
 * @version 1.0
 * @date Jul 9, 2014 4:07:11 PM
 */
public class PhoneBelongService {
	
	/**
	 * 生成归属地相关信息
	 * @param phone
	 * @return 归属地相关信息
	 * @throws UnsupportedEncodingException
	 */
	public static String getPhoneBelongDetail(String phone) throws UnsupportedEncodingException{
		// 获取手机归属地
		PhoneBelong phoneBelong = getPhoneBelong(phone);
		
		// 存储文本信息
		StringBuffer news = new StringBuffer();
		
		if (phoneBelong != null) {
			news.append("号码:"+phoneBelong.getPhone()).append("\n");
			news.append("区号:"+phoneBelong.getArea()).append("\n");
			news.append("卡类型:"+phoneBelong.getCtype()).append("\n");
			news.append("运营商:"+phoneBelong.getOperators()).append("\n");
			news.append("归属地:"+phoneBelong.getSimcall()).append("\n\n");
		}
		
		if(news.length() == 0){
			news.append("号码").append(phone).append("不存在,请重新输入!");
		}
		
		// 截取字符串以免超出微信最大发送字符数2048
		if(news.toString().getBytes("UTF-8").length > 2048){
			 return news.substring(0, 2000/3).concat("...");
		 }
		
		return news.toString();
	}
	
	
	/**
	 * 获取手机归属地
	 * @param phone
	 * @return 手机归属地对象
	 */
	public static PhoneBelong getPhoneBelong(String phone){
		URL url = null;
		PhoneBelong phoneBelong = new PhoneBelong();
		try{
			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
			DocumentBuilder builder = factory.newDocumentBuilder();
			
			url = new URL("http://api.k780.com:88/?app=phone.get&phone="+phone+"&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=xml");
			
			Document doc = builder.parse(url.openStream());
			NodeList node = doc.getElementsByTagName("result"); 
			
			for(int i=0;i<node.getLength();i++){ 
				String area = "";
				String ctype = "";
				String operators = "";
				String simcall = "";
				if(doc.getElementsByTagName("area").item(i).getFirstChild() != null){
					area = doc.getElementsByTagName("area").item(i).getFirstChild().getNodeValue();
				}
				if(doc.getElementsByTagName("ctype").item(i).getFirstChild() != null){
					ctype = doc.getElementsByTagName("ctype").item(i).getFirstChild().getNodeValue();
				}
				if(doc.getElementsByTagName("operators").item(i).getFirstChild() != null){
					operators = doc.getElementsByTagName("operators").item(i).getFirstChild().getNodeValue();
				}
				if(doc.getElementsByTagName("style_simcall").item(i).getFirstChild() != null){
					simcall = doc.getElementsByTagName("style_simcall").item(i).getFirstChild().getNodeValue();
				}
				phoneBelong.setPhone(phone);
				phoneBelong.setArea(area);
				phoneBelong.setCtype(ctype);
				phoneBelong.setOperators(operators);
				phoneBelong.setSimcall(simcall);
			}
			
		}catch(Exception e){
			e.printStackTrace();
		}
		return phoneBelong;
	}
}


查询结果:

号码:13800138000
区号:010
卡类型:移动全球通卡
运营商:移动
归属地:中国,北京

手机号码归属地查询免费api接口代码,布布扣,bubuko.com

手机号码归属地查询免费api接口代码

标签:style   blog   http   java   strong   os   

原文地址:http://blog.csdn.net/wangxw8746/article/details/37923071

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!