diff options
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.java | 40 |
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; + } + +} |