Für HttpClient 4.0.x verwenden Sie einen HttpRequestInterceptor, um die präemptive Authentifizierung zu aktivieren - da die AndroidHttpClient
Klasse stellt nicht die addRequestInterceptor(..)
Methode müssen Sie wahrscheinlich die DefaultHttpClient
Klasse.
Dieses Beispiel wird Spam user1
/ user1
an jeden interessierten Server. Einstellen der AuthScope
wenn Ihnen die Sicherheit auch nur ein bisschen am Herzen liegt.
DefaultHttpClient client = new DefaultHttpClient();
client.getCredentialsProvider().setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("user1", "user1"));
client.addRequestInterceptor(new HttpRequestInterceptor() {
public void process(HttpRequest request, HttpContext context) throws HttpException, IOException {
AuthState state = (AuthState) context.getAttribute(ClientContext.TARGET\_AUTH\_STATE);
if (state.getAuthScheme() == null) {
BasicScheme scheme = new BasicScheme();
CredentialsProvider credentialsProvider = (CredentialsProvider) context.getAttribute(ClientContext.CREDS\_PROVIDER);
Credentials credentials = credentialsProvider.getCredentials(AuthScope.ANY);
if (credentials == null) {
throw new HttpException();
}
state.setAuthScope(AuthScope.ANY);
state.setAuthScheme(scheme);
state.setCredentials(credentials);
}
}
}, 0); // 0 = first, and you really want to be first.