首先需要建立一个 DavMethod 对象,然后用第一步建立的 HttpClient 实例调用该方法。清单 2 中 MkColMethod 方法的作用是新建一个集合(Collection),其中 WebDAV 中的集合概念可以理解为目录,本例的作用是在 Web 服务器中的相对路径下建立 uploads/test/ 的目录,MkColMethod 的输入参数为新建目录的 URI。
清单 2. 调用 DavMethod 对象
// MKCOL method
DavMethod mkCol = new MkColMethod("http://127.0.0.1/uploads/test");
client.executeMethod(mkCol);
第三步:获取方法的返回状态。
调用完 WebDAV 的方法后,可以从该方法的对象中获得方法执行的状态信息。例如清单 3 的返回结果可能是“201”,“Created”和“HTTP/1.1 201 Created”。可以看出这些返回信息的格式和 HTTP 协议的返回值是一致的。
清单 3. 获取状态码
int statusCode = mkCol.getStatusCode();
String statusText = mkCol.getStatusText();
StatusLine statusLine = mkCol.getStatusLine();
第四步:分析返回值。
通过返回值,我们不仅可以知道方法调用是否成功,还能获取有用的数据进行下一步分析,例如对于一个完整的客户端实现,往往需要首先调用 PROPFIND 方法得到当前目录下的所有文件,然后再决定如何进行下一步操作。
清单 4. 获取返回值
// PROPFIND Method
DavMethod find = new PropFindMethod("http://127.0.0.1/uploads/test/",
DavConstants.PROPFIND_ALL_PROP, DavConstants.DEPTH_1);
client.executeMethod(find);
MultiStatus multiStatus = find.getResponseBodyAsMultiStatus();
MultiStatusResponse [] responses = multiStatus.getResponses();
System.out.println("Folders and files:");
for(int i = 0; i < responses.length; i++) {
System.out.println(responses[i].getHref());
}
通过对以上调用方法的使用介绍,我们已经可以调用 WebDAV 的各种方法,读者应该已经可以根据自己的需求开发 WebDAV 客户端了。本文完整的程序代码见附件。
DavClient.zip附件下载:
免费下载地址在
用户名与密码都是
具体下载目录在 /2013年资料/9月/26日/使用 Apache Jackrabbit 实现 WebDAV 客户端
下载方法见
接下来请看第2页精彩内容: