[Jsimplebrowser-svn] SF.net SVN: jsimplebrowser: [51] trunk/core/src/main/java/com/software416/ jsi
Status: Alpha
Brought to you by:
rdimarco
From: <rdi...@us...> - 2007-08-13 23:10:59
|
Revision: 51 http://jsimplebrowser.svn.sourceforge.net/jsimplebrowser/?rev=51&view=rev Author: rdimarco Date: 2007-08-13 16:10:58 -0700 (Mon, 13 Aug 2007) Log Message: ----------- Some more minor updates to the XmlHttpRequest. Modified Paths: -------------- trunk/core/src/main/java/com/software416/jsimplebrowser/XmlHttpRequest.java trunk/core/src/main/java/com/software416/jsimplebrowser/impl/XmlHttpRequestImpl.java Modified: trunk/core/src/main/java/com/software416/jsimplebrowser/XmlHttpRequest.java =================================================================== --- trunk/core/src/main/java/com/software416/jsimplebrowser/XmlHttpRequest.java 2007-08-13 23:04:26 UTC (rev 50) +++ trunk/core/src/main/java/com/software416/jsimplebrowser/XmlHttpRequest.java 2007-08-13 23:10:58 UTC (rev 51) @@ -38,7 +38,7 @@ public String getAllResponseHeaders(); public String getResponseHeader(String header); public String getResponseText(); - public String getResponseXML(); + public Document getResponseXML(); public short getReadyState(); public short getStatus(); public String getStatusText(); Modified: trunk/core/src/main/java/com/software416/jsimplebrowser/impl/XmlHttpRequestImpl.java =================================================================== --- trunk/core/src/main/java/com/software416/jsimplebrowser/impl/XmlHttpRequestImpl.java 2007-08-13 23:04:26 UTC (rev 50) +++ trunk/core/src/main/java/com/software416/jsimplebrowser/impl/XmlHttpRequestImpl.java 2007-08-13 23:10:58 UTC (rev 51) @@ -10,12 +10,16 @@ // package com.software416.jsimplebrowser.impl; +import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; +import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.List; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; @@ -23,6 +27,7 @@ import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; +import org.apache.commons.httpclient.Header; import org.apache.commons.httpclient.URI; import org.apache.commons.httpclient.URIException; import org.apache.commons.httpclient.methods.EntityEnclosingMethod; @@ -35,6 +40,7 @@ import org.w3c.dom.events.EventException; import org.w3c.dom.events.EventListener; import org.w3c.dom.events.EventTarget; +import org.xml.sax.SAXException; import com.google.inject.Inject; import com.software416.jsimplebrowser.BrowserRuntimeException; @@ -55,9 +61,18 @@ private EntityEnclosingMethod _requestMethod; private boolean _sendFlag = false; private boolean _isAsync = true; - @Inject private Window _window = null; + private Window _window = null; @Inject private RequestService _requestService = null; - + + public XmlHttpRequestImpl() { + super(); + } + + public XmlHttpRequestImpl(Window w) { + this(); + _window = w; + } + /* (non-Javadoc) * @see com.software416.jsimplebrowser.XmlHttpRequest#abort() */ @@ -79,32 +94,51 @@ * @see com.software416.jsimplebrowser.XmlHttpRequest#getAllResponseHeaders() */ public String getAllResponseHeaders() { - // TODO Auto-generated method stub - return null; + if (_state != XmlHttpRequestReadyState.LOADING && _state != XmlHttpRequestReadyState.DONE) { + throw new IllegalStateException("Need to be loading or done to get header"); + } + Header[] headers = _requestMethod.getRequestHeaders(); + StringBuilder sb = new StringBuilder(); + for (Header header : headers) { + sb.append(header.getName() + ": " + header.getValue() + "\r\n"); + } + return sb.toString(); } /* (non-Javadoc) * @see com.software416.jsimplebrowser.XmlHttpRequest#getResponseHeader(java.lang.String) */ public String getResponseHeader(String header) { - // TODO Auto-generated method stub - return null; + if (_state != XmlHttpRequestReadyState.LOADING && _state != XmlHttpRequestReadyState.DONE) { + throw new IllegalStateException("Need to be loading or done to get header"); + } + return _requestMethod.getRequestHeader(header).getValue(); } /* (non-Javadoc) * @see com.software416.jsimplebrowser.XmlHttpRequest#getResponseText() */ public String getResponseText() { - // TODO Auto-generated method stub - return null; + try { + return _requestMethod.getResponseBodyAsString(); + } catch (IOException ex) { + throw new BrowserRuntimeException("Could not read response body", ex); + } } /* (non-Javadoc) * @see com.software416.jsimplebrowser.XmlHttpRequest#getResponseXML() */ - public String getResponseXML() { - // TODO Auto-generated method stub - return null; + public Document getResponseXML() { + try { + return DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new ByteArrayInputStream(getResponseText().getBytes())); + } catch (SAXException ex) { + throw new BrowserRuntimeException("Could not read response document", ex); + } catch (IOException ex) { + throw new BrowserRuntimeException("Could not read response document", ex); + } catch (ParserConfigurationException ex) { + throw new BrowserRuntimeException("Could not read response document", ex); + } } /* (non-Javadoc) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |