import java.io.FileOutputStream;
import java.io.IOException;
+import org.apache.commons.httpclient.Credentials;\r
+import org.apache.commons.httpclient.HttpClient;\r
+import org.apache.commons.httpclient.UsernamePasswordCredentials;\r
+import org.apache.commons.httpclient.auth.AuthScope;\r
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.HttpVersion;
-import org.apache.http.auth.AuthScope;
-import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPut;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.entity.FileEntity;
-import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
import android.net.Uri;
import android.util.Log;
-public class WebdavClient {
+public class WebdavClient extends HttpClient {
private DefaultHttpClient mHttpClient;
private BasicHttpContext mHttpContext;
private HttpHost mTargetHost;
private SchemeRegistry mSchemeRegistry;
- private Uri mUri;
+ private Uri mUri;\r
+ private Credentials mCredentials;
final private static String TAG = "WebdavClient";
public DefaultHttpClient getHttpClient() {
// determine default port for http or https
int targetPort = mTargetHost.getPort() == -1 ?
( mUri.getScheme().equals("https") ? 443 : 80)
- : mUri.getPort();
-
- mHttpClient.getCredentialsProvider().setCredentials(
- new AuthScope(mUri.getHost(), targetPort),
- new UsernamePasswordCredentials(username, password));
- BasicScheme basicAuth = new BasicScheme();
- mHttpContext.setAttribute("preemptive-auth", basicAuth);
+ : mUri.getPort();\r
+\r
+ getParams().setAuthenticationPreemptive(true);
+ getState().setCredentials(AuthScope.ANY, getCredentials(username, password));
}
+ private Credentials getCredentials(String username, String password) {\r
+ if (mCredentials == null)\r
+ mCredentials = new UsernamePasswordCredentials(username, password); \r
+ return mCredentials;\r
+ }\r
public void allowUnsignedCertificates() {
// https
mSchemeRegistry.register(new Scheme("https", new EasySSLSocketFactory(), 443));