hacer - login y registro android studio firebase
¿Cómo hacer la autenticación HTTP en android? (6)
El método manual funciona bien con import android.util.Base64, pero asegúrese de configurar Base64.NO_WRAP en la codificación de llamada:
String basicAuth = "Basic " + new String(Base64.encode("user:pass".getBytes(),Base64.NO_WRAP ));
connection.setRequestProperty ("Authorization", basicAuth);
Estoy revisando la clase org.apache.http.auth. ¿Alguna más referencia o ejemplo si alguien tiene?
Esto funciona para mí
URL imageUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) imageUrl
.openConnection();
conn.setRequestProperty("Authorization", "basic " +
Base64.encode("username:password".getBytes()));
conn.setConnectTimeout(30000);
conn.setReadTimeout(30000);
conn.setInstanceFollowRedirects(true);
InputStream is = conn.getInputStream();
Para mí, funcionó,
final String basicAuth = "Basic " + Base64.encodeToString("user:password".getBytes(), Base64.NO_WRAP);
Apache HttpCLient:
request.setHeader("Authorization", basicAuth);
HttpUrlConnection:
connection.setRequestProperty ("Authorization", basicAuth);
Para mis proyectos de Android, he utilizado la biblioteca Base64 desde aquí:
Es una biblioteca muy extensa y hasta ahora no he tenido problemas con ella.
Usted puede insertar manualmente el encabezado http para solicitar:
HttpGet request = new HttpGet(...);
request.setHeader("Authorization", "Basic "+Base64.encodeBytes("login:password".getBytes()));
No he encontrado ese paquete en particular anteriormente, pero dice que es para la autenticación HTTP del lado del cliente, que he podido hacer en Android usando las API de java.net
, así:
Authenticator.setDefault(new Authenticator(){
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("myuser","mypass".toCharArray());
}});
HttpURLConnection c = (HttpURLConnection) new URL(url).openConnection();
c.setUseCaches(false);
c.connect();
Obviamente tu getPasswordAuthentication () probablemente debería hacer algo más inteligente que devolver una constante.
Si intentas realizar una solicitud con un cuerpo (por ejemplo, POST
) con autenticación, ten cuidado con el problema 4326 de Android . He vinculado una solución sugerida a la plataforma allí, pero hay una solución simple si solo quieres la autenticación básica: no molestes con Authenticator, y en cambio haz esto:
c.setRequestProperty("Authorization", "basic " +
Base64.encode("myuser:mypass".getBytes(), Base64.NO_WRAP));