Я пытаюсь загрузить файл Excel с веб-сайта с аутентификацией. Обычно, если я вручную копирую ссылку в веб-браузер, появляется всплывающее окно с сообщением «Файл.xls Сохранить или Отменить». Не знаете, как можно загрузить этот файл программно через Android.
Я просто не могу заставить его работать. Я смог загрузить файл Excel по ссылке, но когда я открыл файл, он не поддерживается. Я понял, что просто создаю файл, и мне нужно войти в систему, чтобы иметь возможность загрузить файл.
Итак, первая проблема: я попытался использовать следующий код для аутентификации, и я даже не уверен, вошел ли я в систему или она сработала;
public void CheckAuthenticate(){
try {
// Sets the authenticator that will be used by the networking code
// when a proxy or an HTTP server asks for authentication.
Authenticator.setDefault(new CustomAuthenticator());
URL url = new URL("http://*****.com/account/login");
// read text returned by server
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String line;
while ((line = in.readLine()) != null) {
//System.out.println(line);
}
in.close();
}
catch (MalformedURLException e) {
System.out.println("Malformed URL: " + e.getMessage());
}
catch (IOException e) {
System.out.println("I/O Error: " + e.getMessage());
}
}
public static class CustomAuthenticator extends Authenticator {
// Called when password authorization is needed
protected PasswordAuthentication getPasswordAuthentication() {
// Get information about the request
String prompt = getRequestingPrompt();
String hostname = getRequestingHost();
InetAddress ipaddr = getRequestingSite();
int port = getRequestingPort();
String email = "XXXXXXX";
String password = "XXXXXXX";
System.out.println("prompt: " + prompt);
System.out.println("hostname: " + hostname);
System.out.println("requesting site: " + ipaddr);
// Return the information (a data holder that is used by Authenticator)
return new PasswordAuthentication(email, password.toCharArray());
}
}
Вторая проблема заключается в том, что я не уверен, правильно ли я выполняю следующий код:
URL url = new URL(downloadUrl);//Create Download URl
HttpURLConnection c = (HttpURLConnection) url.openConnection();//Open Url Connection
c.setRequestMethod("GET");//Set Request Method to "GET" since we are grtting data
c.connect();//connect the URL Connection