Android-метод MKCOL, http, addHeader, - PullRequest
       18

Android-метод MKCOL, http, addHeader,

0 голосов
/ 20 февраля 2011
- (FMWebDAVRequest*) createDirectory {
if (!_endSelector) {
    _endSelector = @selector(requestDidCreateDirectory:);
}

NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:_url];

[req setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
[req setTimeoutInterval:60 * 5];

[req setHTTPMethod:@"MKCOL"];


if (![[NSUserDefaults standardUserDefaults] boolForKey:@"skipMKCOLContentType"]) {
    [req setValue:@"application/xml" forHTTPHeaderField:@"Content-Type"];
}

[self sendRequest:req];

return self;

Этот код я использую для iPhone, я пишу клиент WebDav для обеих платформ, но я не знаю, как реализовать MKCOL для Android, что я делаю MKCOL, это метод WebDav для создания пути, есть идеи?

HttpPut request = new HttpPut();
    request.addHeader("", "MKCOL /test879797 HTTP/1.1");
    request.addHeader("Host","myserver:port");
    request.addHeader("Authorization","Basic YWRtaW46MTIzNDU2");

Ответы [ 2 ]

3 голосов
/ 12 июня 2016

Используйте следующий код:

public class HttpMkCol extends HttpEntityEnclosingRequestBase
{
    public static final String METHOD_NAME = "MKCOL";
    public HttpMkCol(String url)
    {
        this(URI.create(url));
    }
    public HttpMkCol(URI url)
    {
        this.setURI(url);
    }
    @Override
    public String getMethod()
    {
        return METHOD_NAME;
    }
}

Первоначальный источник: https://github.com/lookfirst/sardine HttpMkCol.java

0 голосов
/ 20 февраля 2011

Запрос HttpPut = новый HttpPut ();

MKCOL не PUT.

Apache HttpClient напрямую не поддерживает WebDAV.Вы можете поэкспериментировать с созданием собственного настраиваемого подкласса org.apache.http.message.AbstractHttpMessage для реализации глагола MKCOL.

Или вы можете увидеть, создал ли кто-то еще расширения WebDAV для Apache HttpClient.

Или же вы можете найти другую клиентскую библиотеку WebDAV для Java и посмотреть, работает ли она на Android.

...