/ / Web scrape después del inicio de sesión de autenticación básica: android, ssl, jsoup, autenticación básica

Raspado web después del inicio de sesión de autenticación básica: android, ssl, jsoup, autenticación básica

Necesito raspar el contenido detrás de una página que tiene una autenticación básica http. Además, el sitio tiene ssl. Lo que escribí hasta ahora:

Document document = Jsoup.connect("https://someuser:somepassword@somedomain.com").get();

Pero no funciona. También probé:

Document document = Jsoup
.connect("https://somedomain.com").get();
.header("Authorization", "Basic " + base64login)
.get();

Donde base64login es:

 private String title;
String username = "someuser";
String password = "somepass";
String login = username + ":" + password;
public String base64login = Base64.encodeToString(login.getBytes(), Base64.DEFAULT);

No sé cómo hacerlo funcionar. ¿Alguien puede ayudarme?

Respuestas

1 para la respuesta № 1

Sin la URL es difícil de saber, pero supongo que su codificación predeterminada de Charset no coincide con lo que espera el servidor web. Quizás intente esto:

public String base64login = new String(
Base64.encodeBase64(login.getBytes(Charset.forName("utf-8")))
);

Esto utiliza los métodos org.apache.commons.codec.binary.Base64.

El inicio de sesión debe hacerse como lo intentó en su segundo enfoque, es decir, con el "Authorization" encabezamiento. Por cierto, tienes un error allí en tu código. los header Se debe llamar al método antes get y no hay punto y coma después connect.