1 package org.codehaus.xfire.client.http; 2 3 import java.io.OutputStream; 4 5 import javax.xml.stream.XMLStreamException; 6 import javax.xml.stream.XMLStreamReader; 7 import javax.xml.stream.XMLStreamWriter; 8 9 import org.codehaus.xfire.client.ClientHandler; 10 import org.codehaus.xfire.fault.XFireFault; 11 12 /*** 13 * A client which invokes REST style services. 14 * 15 * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a> 16 * @since Oct 26, 2004 17 */ 18 public class RestHttpClient 19 extends AbstractHttpClient 20 { 21 private ClientHandler handler; 22 23 /*** 24 * Create a REST client. 25 * @param bodyHandler The handler for the XML messages. 26 * @param url The url to invoke. 27 */ 28 public RestHttpClient(ClientHandler bodyHandler, String url) 29 { 30 super(); 31 this.handler = bodyHandler; 32 setUrl( url ); 33 } 34 35 protected void writeRequest(OutputStream out) 36 { 37 if ( handler.hasRequest() ) 38 super.writeRequest(out); 39 } 40 41 protected void writeRequest(XMLStreamWriter writer) 42 throws XMLStreamException 43 { 44 writer.writeStartDocument(); 45 handler.writeRequest(writer); 46 writer.writeEndDocument(); 47 48 writer.close(); 49 } 50 51 protected void readResponse(XMLStreamReader reader) 52 throws XMLStreamException, XFireFault 53 { 54 handler.handleResponse(reader); 55 } 56 }