Как сделать вызов WebDav с помощью HttpClient? - PullRequest
1 голос
/ 17 мая 2011

В частности, я хочу позвонить с MKCOL через HttpClient, чтобы создать папку для Apache Jackrabbit через Sling REST API.

Я пробовал варианты

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

Но пока нет игральных костей.Я предполагаю, что это менее сложно, чем я делаю.

Я также вижу, что есть MkColMethod для чего-то вроде

MkColMethod mkColMethod = new MkColMethod(restUrl);

Но я нене знаю, как использовать это.Я думаю, что это могло работать с предыдущей версией HttpClient.Я использую 4.x

Ответы [ 2 ]

5 голосов
/ 17 мая 2011

Лучше всего взглянуть на интеграционные тесты Sling, в которых для создания контента используются API-интерфейсы RESTful Sling.

«Старый» класс SlingIntegrationTestClient [1] используется для тестирования самого Sling и использует httpclient 3.x для создания контента. Он используется в тестах, найденных в [2], поэтому вы можете найти примеры там.

«Новый» класс SlingClient [3] предназначен для более простой и ясной реализации, используемой инструментами тестирования Sling, описанными в http://sling.apache.org/site/sling-testing-tools.html. Он использует 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 голосов
/ 21 октября 2011

Лучший ответ - использовать сардины.http://sardine.googlecode.com/

Абсурдно смотреть на кучу юнит-тестов, чтобы выяснить, кому использовать webdav.

...