Для HttpClient 4.0.x вы используете HttpRequestInterceptor для включения упреждающей аутентификации - поскольку класс AndroidHttpClient
не предоставляет метод addRequestInterceptor(..)
, вам, вероятно, придется использовать класс DefaultHttpClient
.
Этот пример рассылает спам user1
/ user1
на любой интересующий сервер.Отрегулируйте AuthScope
, если вам небезразличен хотя бы один бит о безопасности.
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.