1 19 20 package com.maverick.http; 21 22 import java.io.IOException ; 23 import java.io.StringWriter ; 24 25 import net.n3.nanoxml.IXMLElement; 26 import net.n3.nanoxml.XMLElement; 27 import net.n3.nanoxml.XMLWriter; 28 29 33 public class PropFindMethod extends HttpMethod { 34 35 String depth; 36 37 public PropFindMethod(String uri, String depth) { 38 super("PROPFIND", uri); this.depth = depth; 40 } 41 42 public HttpResponse execute(HttpRequest request, HttpConnection con) throws IOException { 43 44 request.setHeaderField("Host", con.getHostHeaderValue()); if (depth != null) 46 request.setHeaderField("Depth", depth); request.setHeaderField("Content-Type", "text/xml; charset=\"UTF-8\""); 49 IXMLElement root = new XMLElement(WebDAVConstants.PROPFIND_ELEM, WebDAVConstants.XML_DAV_NAMESPACE); 50 root.addChild(new XMLElement(WebDAVConstants.ALLPROP_ELEM)); 51 52 StringWriter xml = new StringWriter (); 53 XMLWriter writer = new XMLWriter(xml); 54 writer.write(root); 55 56 String str = WebDAVConstants.XML_TEMPLATE + "\r\n" + xml.toString(); byte[] content = str.getBytes("UTF8"); 59 request.setHeaderField("Content-Length", String.valueOf(content.length)); 61 request.performRequest(this, con); 62 con.getOutputStream().write(content); 63 64 return new HttpResponse(con); 65 } 66 67 } 68 | Popular Tags |