Android webdav Java Сардина - PullRequest
       56

Android webdav Java Сардина

0 голосов
/ 24 ноября 2011

Я пытаюсь Сардины сделать клиент WebDAV в Android, я пытаюсь этот код:

Это прекрасно работает на JAVA-приложении, но вылетает в Android: (

    HttpClient client = new DefaultHttpClient();
    SardineImpl sardine = new SardineImpl((AbstractHttpClient) client,"testuser","test");
    List<DavResource> resources = sardine.getResources("http://demo.sabredav.org/");
    for (int i = 1; i < resources.size(); i++) {  

          System.out.println(resources.get(i));  
}

Замена System.out.println на Toast Я получаю это

11-24 16:05:34.602: ERROR/AndroidRuntime(19362): java.lang.NoSuchMethodError: org.apache.http.impl.client.AbstractHttpClient.setRedirectStrategy
11-24 16:05:34.602: ERROR/AndroidRuntime(19362):     at com.googlecode.sardine.impl.SardineImpl.init(SardineImpl.java:188)
11-24 16:05:34.602: ERROR/AndroidRuntime(19362):     at com.googlecode.sardine.impl.SardineImpl.<init>(SardineImpl.java:182)
11-24 16:05:34.602: ERROR/AndroidRuntime(19362):     at es.sardine.sardine.onCreate(sardine.java:39)
11-24 16:05:34.602: ERROR/AndroidRuntime(19362):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1065)
11-24 16:05:34.602: ERROR/AndroidRuntime(19362):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2745)
11-24 16:05:34.602: ERROR/AndroidRuntime(19362):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2797)
11-24 16:05:34.602: ERROR/AndroidRuntime(19362):     at android.app.ActivityThread.access$2300(ActivityThread.java:135)
11-24 16:05:34.602: ERROR/AndroidRuntime(19362):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2132)
11-24 16:05:34.602: ERROR/AndroidRuntime(19362):     at android.os.Handler.dispatchMessage(Handler.java:99)
11-24 16:05:34.602: ERROR/AndroidRuntime(19362):     at android.os.Looper.loop(Looper.java:143)
11-24 16:05:34.602: ERROR/AndroidRuntime(19362):     at android.app.ActivityThread.main(ActivityThread.java:4914)
11-24 16:05:34.602: ERROR/AndroidRuntime(19362):     at java.lang.reflect.Method.invokeNative(Native Method)
11-24 16:05:34.602: ERROR/AndroidRuntime(19362):     at java.lang.reflect.Method.invoke(Method.java:521)
11-24 16:05:34.602: ERROR/AndroidRuntime(19362):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
11-24 16:05:34.602: ERROR/AndroidRuntime(19362):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
11-24 16:05:34.602: ERROR/AndroidRuntime(19362):     at dalvik.system.NativeStart.main(Native Method)

Ответы [ 3 ]

1 голос
/ 06 декабря 2017

У меня была такая же проблема, когда я пытался использовать Sardine, включая Apache HttpClient, который конфликтовал с версией, встроенной в Android. Поэтому я решил заменить его на OkHttp, и у меня гораздо меньше проблем. Вот вилка, которую я создал: https://github.com/thegrizzlylabs/sardine-android

0 голосов
/ 18 октября 2015

Для вас, только перебирая элементы на сервере, этот код работал для меня:

 try{

            Sardine sardine = SardineFactory.begin("username", "password");

            List<DavResource> resources = sardine.list("webdav/server/directory/");
            buffer = new StringBuilder();
            for (DavResource res : resources)
            {
                //for example
                buffer.append(res.toString());
            }
        }catch(Exception e){
                Log.e("VIEWER" , e.getMessage());
        }

Я использовал библиотеку проекта Sardine-Android в сочетании с simpleframework.xml.

0 голосов
/ 25 декабря 2011

Вы видели это q: Использование webdav на Android ?По сути, это говорит о том, что Sardine нужна более новая версия HttpClient, чем пакеты с Android, и предоставляет возможность использовать исправленный HttpClient 4.1, подключаемый к приложениям Android.

...