2011-05-16 99 views
1

具體而言,我想撥打MKCOLHttpClient,通過Sling REST API爲Apache Jackrabbit創建一個文件夾。如何使用HttpClient進行WebDav調用?

我試過的

BasicHttpEntityEnclosingRequest request = new BasicHttpEntityEnclosingRequest("MKCOL", restUrl); 

變種,但沒有骰子爲止。我猜這不像我做的那麼困難。

我也看到有MkColMethod這樣的事情

MkColMethod mkColMethod = new MkColMethod(restUrl); 

但我不知道如何利用這一點。我認爲它可能適用於以前版本的HttpClient。我正在使用4.x

回答

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

+0

感謝您的鏈接,但我無法得到這個工作。我的HttpClient /身份驗證配置必須有問題,因爲我的請求嘗試掛起。我要嘗試一種不同的方法(不使用Sling) – Vinnie 2011-05-17 14:44:24

相關問題