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