tbwshc

          Java訪問WebService返回xml數據

          import java.io.IOException;

            import java.io.InputStream;

            import java.net.MalformedURLException;

            import java.net.URL;

            import java.net.URLConnection;

            import java.io.FileNotFoundException;

            import java.io.FileOutputStream;

            import java.io.PrintWriter;

            import org.w3c.dom.Document;

            import org.w3c.dom.DOMException;

            import org.xml.sax.SAXException;

            import javax.xml.parsers.DocumentBuilder;

            import javax.xml.parsers.DocumentBuilderFactory;

            import javax.xml.parsers.ParserConfigurationException;

            import javax.xml.transform.OutputKeys;

            import javax.xml.transform.Transformer;

            import javax.xml.transform.TransformerConfigurationException;

            import javax.xml.transform.TransformerException;

            import javax.xml.transform.TransformerFactory;

            import javax.xml.transform.dom.DOMSource;

            import javax.xml.transform.stream.StreamResult;

            /***

            * @author xuechong

            * 6/11/2010 16:58

            * DomXMLString.java

            * 概述:純java方式訪問遠程WebService接口返回的xml格式的數據保存在本地

            */

            public class DomXMLString{

            private static String SERVICES_HOST = "www.webxml.com.cn";

            //遠程WebService接口url

            private static String NETDATA_URL = "http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx/getRegionProvince";

            //訪問遠程WebService接口返回的xml格式的數據保存在本地的絕對路徑

            private static String LOCAL_PC_SAVEFILE_URL = "E:dataTest/netDataToLocalFile.xml";

            private DomXMLString(){}

            public static void main(String[] args) throws Exception{

            Document document = getProvinceCode(NETDATA_URL);

            helloOK(document, LOCAL_PC_SAVEFILE_URL);

            }

            /*返回一個Document對象*/

            public static Document getProvinceCode(String netXMLDataURL){

            Document document = null;

            DocumentBuilderFactory documentBF = DocumentBuilderFactory.newInstance();

            documentBF.setNamespaceAware(true);

            try{

            DocumentBuilder documentB = documentBF.newDocumentBuilder();

            InputStream inputStream = getSoapInputStream(netXMLDataURL);    //具體webService相關

            document = documentB.parse(inputStream);

            inputStream.close();

            }catch(DOMException e){

            e.printStackTrace();

            return null;

            }catch(ParserConfigurationException e){

            e.printStackTrace();

            return null;

            }catch (SAXException e){

            e.printStackTrace();

            return null;

            }catch(IOException e){

            e.printStackTrace();

            return null;

            }

            return document;

            }

            /*返回InputStream對象*/

            public static InputStream getSoapInputStream(String url){

            InputStream inputStream = null;

            try{

            URL urlObj = new URL(url);

            URLConnection urlConn = urlObj.openConnection();

            urlConn.setRequestProperty("Host", SERVICES_HOST);    //具體webService相關

            urlConn.connect();

            inputStream = urlConn.getInputStream();

            }catch(MalformedURLException e){

            e.printStackTrace();

            }catch(IOException e){

            e.printStackTrace();

            }

            return inputStream;

            }

            /*訪問遠程(WebService)xml數據后返回的xml格式字符串并生成為tb本地文件*/

            public static void helloOK(Document document, String savaFileURL){

            TransformerFactory transF = TransformerFactory.newInstance();

            try{

            Transformer transformer = transF.newTransformer();

            DOMSource source = new DOMSource(document);

            transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");

            transformer.setOutputProperty(OutputKeys.INDENT, "YES");

            PrintWriter pw = new PrintWriter(new FileOutputStream(savaFileURL));

            StreamResult result = new StreamResult(pw);

            transformer.transform(source, result);

            System.out.println("生成xml文件成功!");

            }catch(TransformerConfigurationException e){

            System.out.println(e.getMessage());

            }catch(IllegalArgumentException e){

            System.out.println(e.getMessage());

            }catch(FileNotFoundException e){

            System.out.println(e.getMessage());

            }catch(TransformerException e){

            System.out.println(e.getMessage());

            }

            }

            }

          posted on 2012-08-09 11:47 chen11-1 閱讀(715) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 寿宁县| 喀什市| 建瓯市| 武清区| 油尖旺区| 涿鹿县| 安阳县| 佛学| 万山特区| 苍南县| 惠安县| 顺昌县| 龙井市| 原阳县| 会昌县| 崇仁县| 五原县| 郓城县| 湘潭市| 衢州市| 张家港市| 白山市| 文水县| 新营市| 龙陵县| 静安区| 松桃| 三台县| 遵化市| 萨嘎县| 鄂州市| 岢岚县| 石阡县| 鄂伦春自治旗| 太和县| 通山县| 晋州市| 桐乡市| 江西省| 安陆市| 沂水县|