Actualmente estoy usando un DefaultHttpClient con ThreadSafeClientConnManager. Esto funciona bien, pero me gustaría reemplazar esto usando AndroidHttpClient. Lamentablemente, no puedo agregar UsernamePasswordCredentials, que actualmente es importante para mí. ¿Alguien puede dar una propina o una solución?Cómo usar AndroidHttpClient (nivel de API 8) y contraseña de contraseña de nombre de usuario?
5
A
Respuesta
0
Debe utilizar la clase HttpRequestInterceptor
para la autenticación.
Aquí es un ejemplo
HttpRequestInterceptor httpRequestInterceptor = new HttpRequestInterceptor() {
public void process(final HttpRequest request, final HttpContext context) throws HttpException, IOException {
AuthState authState = (AuthState) context.getAttribute(ClientContext.TARGET_AUTH_STATE);
CredentialsProvider credsProvider = (CredentialsProvider) context.getAttribute(
ClientContext.CREDS_PROVIDER);
HttpHost targetHost = (HttpHost) context.getAttribute(ExecutionContext.HTTP_TARGET_HOST);
if (authState.getAuthScheme() == null) {
AuthScope authScope = new AuthScope(targetHost.getHostName(), targetHost.getPort());
Credentials creds = credsProvider.getCredentials(authScope);
if (creds != null) {
authState.setAuthScheme(new BasicScheme());
authState.setCredentials(creds);
}
}
}
};
0
Sé que la pregunta es antiguo, pero en beneficio de cualquier tropiezo en este (como yo), se puede rodar la cabecera usted mismo con HttpGet
objeto. Como lo siguiente:
httpGet.addHeader("Authorization", "Basic " + Base64.encode(username+":"+password));
+0
El método encode (byte [], int) en el tipo Base64 no es aplicable para los argumentos (String) .. –
0
Mejora de la respuesta de Saad Farooq, el siguiente código funciona para mí.
final AndroidHttpClient client = AndroidHttpClient.newInstance("Android");
getRequest = new HttpGet(url);
getRequest.addHeader("Authorization", "Basic " + Base64.encodeToString(new
String(username + ":" + password).getBytes(), Base64.NO_WRAP));
Cuestiones relacionadas
- 1. TeamCity Nombre de usuario/contraseña
- 2. ¿Suplantar con nombre de usuario y contraseña?
- 3. nombre de usuario y contraseña en sqlite3
- 4. Android: ¿Almacenamiento de nombre de usuario y contraseña?
- 5. Seguridad de nombre de usuario y contraseña de ASMX
- 6. Mercurial (HG) parámetros de extracción: nombre de usuario y contraseña
- 7. gvfs-mount especificar nombre de usuario contraseña
- 8. WCF TransportCredentialOnly no enviar nombre de usuario y contraseña
- 9. ¿Utiliza cURL con nombre de usuario y contraseña?
- 10. Pasando nombre de usuario y contraseña a svcutil.exe?
- 11. Servidor VisualSVN quiere un nombre de usuario y contraseña
- 12. Autenticación Java LDAP con nombre de usuario y contraseña
- 13. Curl para solicitar un nombre de usuario y contraseña
- 14. LDAP - ¿Cómo verificar una combinación de nombre de usuario/contraseña?
- 15. cómo configurar el nombre de usuario/contraseña en HTTPGet
- 16. Cómo pasar nombre de usuario y contraseña en TeamCity REST API
- 17. Enviar nombre de usuario y contraseña al servicio web
- 18. Comprobando el nombre de usuario y la contraseña en Android
- 19. Salida diferente, mismo nombre de usuario y contraseña
- 20. Cómo almacenar mejor la información de usuario y el nombre de usuario y la contraseña
- 21. ¿Qué nombre de usuario/contraseña/firma debería usar para el banco de pruebas de PayPal?
- 22. Obtener usuario y contraseña de ConnectionStringSettings
- 23. Base de datos + Autenticación de Windows + Nombre de usuario/Contraseña?
- 24. cómo usar el nombre de usuario y la contraseña suministrados para leer un archivo en Java
- 25. Autenticación de Windows solicita nombre de usuario/contraseña
- 26. Seguridad más allá de un nombre de usuario/contraseña?
- 27. Autenticación Shiro con sessionId o nombre de usuario + contraseña
- 28. RabbitMQ C# problemas de conexión al usar un nombre de usuario y contraseña
- 29. Modo de servidor HSQLDB nombre de usuario/contraseña
- 30. y contraseña en problema de contraseña - php
Esto abre una nueva pregunta: ¿Cómo agregar el interceptor al AndroidHttpClient? – lichtzeichenanlage
¿Podrías decirme por qué estás tratando de usar 'AndroidHttpClient'? –
Hola, Tammay. Por un lado, el código me parece más limpio, por otro lado, trato de usar clases estándar en lugar de escribir y mantener mi uno una vez. ¿Son esas razones válidas? – lichtzeichenanlage