summaryrefslogtreecommitdiff
path: root/src/main/java/net/tylermurphy/ken/api/wrapper/XmlRequest.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/tylermurphy/ken/api/wrapper/XmlRequest.java')
-rw-r--r--src/main/java/net/tylermurphy/ken/api/wrapper/XmlRequest.java40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/main/java/net/tylermurphy/ken/api/wrapper/XmlRequest.java b/src/main/java/net/tylermurphy/ken/api/wrapper/XmlRequest.java
new file mode 100644
index 0000000..80a755a
--- /dev/null
+++ b/src/main/java/net/tylermurphy/ken/api/wrapper/XmlRequest.java
@@ -0,0 +1,40 @@
+package net.tylermurphy.ken.api.wrapper;
+
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import java.io.BufferedInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+
+public class XmlRequest extends Request {
+
+ public Document request() {
+ super.addHeaders("Content-type","text/xml");
+ HttpURLConnection connection = super.getConnection();
+ try {
+ return parseXML(connection.getInputStream());
+ } catch (Exception ignored) {} finally {
+ if (connection != null) {
+ connection.disconnect();
+ }
+ }
+ return null;
+ }
+
+ private static Document parseXML(InputStream is) throws ParserConfigurationException, SAXException {
+ try (BufferedInputStream stream = new BufferedInputStream(is)) {
+ DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
+ Document doc = dBuilder.parse(stream);
+ doc.getDocumentElement().normalize();
+ return doc;
+ } catch (IOException ignored) {}
+ return null;
+ }
+
+}