如何使用HttpClient进行WebDav调用?

时间:2011-05-16 21:52:34

标签: java httpclient webdav jackrabbit sling

具体来说,我想通过HttpClient致电MKCOL,通过Sling REST API为Apache Jackrabbit创建一个文件夹。

我尝试了

的变体
BasicHttpEntityEnclosingRequest request = new BasicHttpEntityEnclosingRequest("MKCOL", restUrl);

但到目前为止还没有骰子。我猜这不比我做的那么难。

我也看到MkColMethod有类似

的内容
MkColMethod mkColMethod = new MkColMethod(restUrl);

但我不知道如何利用它。我认为它可能适用于以前版本的HttpClient。我正在使用4.x

2 个答案:

答案 0 :(得分:5)

最好是查看Sling集成测试,它使用Sling的RESTful API来创建内容。

“旧”SlingIntegrationTestClient类[1]用于测试Sling本身并使用httpclient 3.x创建内容。它被[2]中的测试所使用,所以你可以在那里找到例子。

“新”SlingClient类[3]旨在更简洁,更简单地重新实现,由http://sling.apache.org/site/sling-testing-tools.html中描述的Sling测试工具使用。它使用了httpclient 4.x,它有一个稍微不同的API。

SlingClient.mkdir和mkdirs方法确实使用MKCOL方法。

[1] http://svn.apache.org/repos/asf/sling/trunk/bundles/commons/testing/src/main/java/org/apache/sling/commons/testing/integration/SlingIntegrationTestClient.java

[2] http://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests

[3] http://svn.apache.org/repos/asf/sling/trunk/testing/tools/src/main/java/org/apache/sling/testing/tools/sling/SlingClient.java

答案 1 :(得分:0)

最好的答案是使用沙丁鱼。 http://sardine.googlecode.com/

看一堆单元测试以找出使用webdav的人是荒谬的。