¿Cómo usar AndroidHttpClient (API Level 8) y UsernamePasswordCredentials?
Actualmente estoy usando un DefaultHttpClient con ThreadSafeClientConnManager. Esto funciona bien, pero me gustaría reemplazarlo usando AndroidHttpClient. Lamentablemente no he podido añadir UsernamePasswordCredentials, que actualmente es importante para mí. ¿Puede alguien proporcionar un consejo o una solución?
- HttpClient que redirige a URL con espacios que lanzan excepción
- Java HttpClient no puede analizar la dirección IP en Android
- Tiempo de espera en DefaultHttpClient
- Obtener datos de mysql a android con php
- Android httpclient se bloquea en la segunda solicitud al servidor (conexión agotada)
- Cómo manejar <br /> etiquetas en Android
- ¿Cómo puedo saber cuando HttpClient.execute () ha terminado de buscar todo el contenido en una solicitud grande?
- La autenticación de Android HttpClient siempre devuelve código 401
- Establecer el agente de usuario en httpclient de Java y permitir redireccionamientos a true
- ¿Cómo llamo a un servicio web seguro (SSL) en Android, cuando Android no ve el certificado?
- Obtener el nombre de archivo sugerido de org.apache.http.HttpResponse
- HttpClient ejecutar sigue dando ConnectTimeoutException
- ¿Dónde puedo probar mi método httpPost?
Necesita utilizar la clase HttpRequestInterceptor
para la autenticación.
Aquí hay 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); } } } };
Sé que la pregunta es vieja pero para el beneficio de cualquier persona que tropieza en esto (como lo hice), usted puede rodar la cabecera usted mismo con el objeto de HttpGet
. Al igual que :
httpGet.addHeader("Authorization", "Basic " + Base64.encode(username+":"+password));
Algunas mejoras a 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));
- Activación de la transición deslizante dentro / fuera de la animación
- Keyevent android teléfono bloqueado