KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > echo2example > chatclient > XmlHttpConnection


1 /*
2  * This file is part of the Echo Web Application Framework (hereinafter "Echo").
3  * Copyright (C) 2002-2005 NextApp, Inc.
4  *
5  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
6  *
7  * The contents of this file are subject to the Mozilla Public License Version
8  * 1.1 (the "License"); you may not use this file except in compliance with
9  * the License. You may obtain a copy of the License at
10  * http://www.mozilla.org/MPL/
11  *
12  * Software distributed under the License is distributed on an "AS IS" basis,
13  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
14  * for the specific language governing rights and limitations under the
15  * License.
16  *
17  * Alternatively, the contents of this file may be used under the terms of
18  * either the GNU General Public License Version 2 or later (the "GPL"), or
19  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
20  * in which case the provisions of the GPL or the LGPL are applicable instead
21  * of those above. If you wish to allow use of your version of this file only
22  * under the terms of either the GPL or the LGPL, and not to allow others to
23  * use your version of this file under the terms of the MPL, indicate your
24  * decision by deleting the provisions above and replace them with the notice
25  * and other provisions required by the GPL or the LGPL. If you do not delete
26  * the provisions above, a recipient may use your version of this file under
27  * the terms of any one of the MPL, the GPL or the LGPL.
28  */

29
30 package echo2example.chatclient;
31
32 import java.io.IOException JavaDoc;
33 import java.io.InputStream JavaDoc;
34 import java.io.OutputStream JavaDoc;
35 import java.net.HttpURLConnection JavaDoc;
36 import java.net.URL JavaDoc;
37
38 import javax.xml.parsers.DocumentBuilder JavaDoc;
39 import javax.xml.parsers.DocumentBuilderFactory JavaDoc;
40 import javax.xml.parsers.ParserConfigurationException JavaDoc;
41 import javax.xml.transform.Transformer JavaDoc;
42 import javax.xml.transform.TransformerException JavaDoc;
43 import javax.xml.transform.TransformerFactory JavaDoc;
44 import javax.xml.transform.dom.DOMSource JavaDoc;
45 import javax.xml.transform.stream.StreamResult JavaDoc;
46
47 import org.w3c.dom.Document JavaDoc;
48 import org.xml.sax.SAXException JavaDoc;
49
50 /**
51  * Utility class to POST XML messages (represented as DOM <code>Document</code>
52  * objects) to web services and retrieve XML response messages (again
53  * represented as DOM <code>Document</code> objects).
54  */

55 public class XmlHttpConnection {
56     
57     /**
58      * POSTs an XML message to a web service.
59      *
60      * @param url the URL of the service
61      * @param requestDocument the DOM document to POST
62      * @return the XML response
63      */

64     public static Document JavaDoc send(String JavaDoc url, Document JavaDoc requestDocument)
65     throws IOException JavaDoc {
66         try {
67             URL JavaDoc u = new URL JavaDoc(url);
68             HttpURLConnection JavaDoc conn = (HttpURLConnection JavaDoc) u.openConnection();
69             conn.setRequestMethod("POST");
70             conn.setDoOutput(true);
71
72             // Attach Document
73
OutputStream JavaDoc out = conn.getOutputStream();
74             TransformerFactory JavaDoc tFactory = TransformerFactory.newInstance();
75             Transformer JavaDoc transformer = tFactory.newTransformer();
76             DOMSource JavaDoc source = new DOMSource JavaDoc(requestDocument);
77             StreamResult JavaDoc result = new StreamResult JavaDoc(out);
78             transformer.transform(source, result);
79             out.close();
80             
81             conn.connect();
82             
83             InputStream JavaDoc in = conn.getInputStream();
84             DocumentBuilderFactory JavaDoc factory = DocumentBuilderFactory.newInstance();
85             factory.setNamespaceAware(true);
86             DocumentBuilder JavaDoc builder = factory.newDocumentBuilder();
87             return builder.parse(in);
88         } catch (ParserConfigurationException JavaDoc ex) {
89             throw new IOException JavaDoc("Unable to parse response: " + ex.toString());
90         } catch (SAXException JavaDoc ex) {
91             throw new IOException JavaDoc("Unable to parse response: " + ex.toString());
92         } catch (TransformerException JavaDoc ex) {
93             throw new IOException JavaDoc("Unable to write document to OutputStream: " + ex.toString());
94         }
95     }
96
97 }
98
Popular Tags