微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

调用WebService获取手机号的归属地

import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class Mobile {
 /**
  * 获得soap请求
  *
  * @param mobileCode
  * @return
  */
 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();
 }
 /**
  * 发送soap请求到服务器,并接受返回数据
  *
  * @param mobileCode
  * @return
  */
 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();
   InputStream is = conn.getInputStream();
   return is;
  } catch (Exception e) {
   e.printstacktrace();
   return null;
  }
 }
 public static String getMobileNoTrack(String mobileCode) {   try {    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++) {     Node n =  nl.item(i);     if (n.getFirstChild().getNodeValue().equals("手机号码错误")) {      sb = new StringBuffer("#");      System.out.println("手机号码输入有误");      break;     }     sb.append(n.getFirstChild().getNodeValue() + "\n");    }    is.close();    return sb.toString();   } catch (Exception e) {    e.printstacktrace();    return null;   }  }  public static void main(String[] args) {   System.out.println(getMobileNoTrack("18801001189"));   System.out.println(getMobileNoTrack("15173720808"));  } }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐