[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.
|