手机号归属地查询工具类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手机号归属地查询工具类相关的知识,希望对你有一定的参考价值。
import org.w3c.dom.NodeList; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import java.io.InputStream; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.URL; import java.net.URLConnection; /** * @Author:VIC * @Description: 手机归属地查询 */ public class PhoneAddressUtil { private static String getSoapRequest(String mobileCode) { StringBuilder sb = new StringBuilder(); sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>" + "\n" + "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" + " " + "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"" + " " + "xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">" + "\n" + "<soap:Body>" + "\n" + "<getMobileCodeInfo" + " " + "xmlns=\"http://WebXml.com.cn/\">" + "\n" + "<mobileCode>" + mobileCode + "</mobileCode>" + "\n" + "<userID></userID>" + "\n" + "</getMobileCodeInfo>" + "\n" + "</soap:Body>" + "\n" + "</soap:Envelope>" ); return sb.toString(); } private static InputStream getSoapInputStream(String mobileCode) { try { String soap = getSoapRequest(mobileCode); if (soap == null) return null; URL url = new URL("http://www.webxml.com.cn/WebServices/MobileCodeWS.asmx"); URLConnection conn = url.openConnection(); conn.setUseCaches(false); conn.setDoInput(true); conn.setDoOutput(true); conn.setRequestProperty("Content-Type", "text/xml; charset=utf-8"); conn.setRequestProperty("Content-Length", Integer.toString(soap.length())); conn.setRequestProperty("SOAPAction", "http://WebXml.com.cn/getMobileCodeInfo"); OutputStream os = conn.getOutputStream(); OutputStreamWriter osw = new OutputStreamWriter(os, "UTF-8"); osw.write(soap); osw.flush(); osw.close(); osw.close(); InputStream is = conn.getInputStream(); return is; } catch (Exception e) { e.printStackTrace(); return null; } } //返回示例 安徽 安庆 安徽联通GSM卡 public static String getMobileNoTrack(String mobileCode) { try { org.w3c.dom.Document document = null; DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); InputStream is = getSoapInputStream(mobileCode); DocumentBuilder db = dbf.newDocumentBuilder(); document = db.parse(is); NodeList nl = document.getElementsByTagName("getMobileCodeInfoResult"); StringBuffer sb = new StringBuffer(); for (int i = 0; i < nl.getLength(); i++) { org.w3c.dom.Node n = nl.item(i); if (n.getFirstChild().getNodeValue().equals("手机号码错误")) { sb = new StringBuffer("#"); break; } sb.append(n.getFirstChild().getNodeValue() + "\n"); } is.close(); return sb.toString(); } catch (Exception e) { e.printStackTrace(); return null; } } //获取手机归属地 省份 public static String getMobileAttribution(String Mobile){ String str = ""; str = PhoneAddressUtil.getMobileNoTrack(Mobile); if(str != null && !"".equals(str)){ str = str.substring(str.indexOf(":")+1); String strArry [] = new String[]{}; strArry = str.split(" "); if (strArry.length >= 2) { str = strArry[0]+strArry[1]; } else { str = "无归属地信息"; } } return str; } }
以上是关于手机号归属地查询工具类的主要内容,如果未能解决你的问题,请参考以下文章