/ / Web scrape après la connexion d'authentification de base - android, ssl, jsoup, authentification de base

Web scrape après la connexion d'authentification de base - android, ssl, jsoup, basic-authentication

J'ai besoin de gratter le contenu derrière une page qui a une authentification de base http. En outre, le site a ssl. Ce que j'ai écrit jusqu'à présent:

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

Mais ça ne marche pas. Également essayé:

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

Où base64login est:

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

Je ne sais pas comment le faire fonctionner. Quelqu'un peut-il m'aider?

Réponses:

1 pour la réponse № 1

Sans l'URL, c'est difficile à savoir, mais je suppose que votre encodage Charset par défaut ne correspond pas à ce que le serveur Web attend. Essayez peut-être ceci:

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

Cela utilise les méthodes org.apache.commons.codec.binary.Base64.

La connexion doit être effectuée comme vous l'avez essayé dans votre deuxième approche, c'est-à-dire avec le "Authorization" entête. BTW - vous avez une erreur dans votre code. le header la méthode doit être appelée avant get et il n'y a pas de point-virgule après connect.