java WebService实现手机号码归属地查询功能
2013-01-29 20:34
302 查看
package com.rocky.test; 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.NodeList; public class Moblie { /** * * 获得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 { 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("#"); 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(Moblie.getMobileNoTrack("13226678785")); } }
相关文章推荐
- java自带webservice功能实现Javax.jws.WebService--JAX-WS
- 死亡历险,翻开新的一篇之Delphi 连接 JAVA WebService,并实现查找,添加,修改,删除等功能
- java resteasy restful webservice教程(六):实现文件下载功能实例文章来源:爱上123 原文地址:http://www.ishang123.com/jishubowen/
- java web开发_购物车功能实现
- 22、关于Drools Web版本与java实现自动扫描功能
- javaweb登陆,注销功能实现的一般步奏
- java web中实现同一帐号同一时间只能一个地点登陆(类似QQ登录的功能)
- Java Web基础——Action+Service +Dao三层的功能划分
- 从零开始写javaweb框架笔记15-搭建轻量级JAVAWEB框架-实现依赖注入功能
- java web开发:servlet中图形验证码功能的实现
- Java Web基础——Action+Service +Dao三层的功能划分
- Java web 注册登录功能实现简介
- 关于JavaWeb如何实现用户注册 后台即时提醒(类似站内信功能)
- Java Web 实现QQ登录功能一个帐号同一时间只能一个人登录
- SAAJ访问javawebService实现文件上传
- JAVA_WEB项目(结合Servlet+jsp+ckEditor编辑器+jquery easyui技术)实现新闻发布管理系统第三篇:新闻发布,新闻修改,新闻删除功能的实现
- VB.NET客户端调用Axis的Java Web Service实现文件上传
- 关于JavaWeb如何实现用户类似站内信功能
- JAVA_WEB项目(结合Servlet+jsp+ckEditor编辑器+jquery easyui技术)实现新闻发布管理系统第二篇:登陆和注销功能实现
- 【java web】springMVC框架实现用多选框批量删除表数据功能