PDA

View Full Version : [JAVA] Login a sito per scaricare file


franksisca
03-06-2014, 12:16
Ciao ragazzi,
mi trovo abitualmente ad entrare su un sito per scaricare dei csv, e volevo automatizzare la procedura.

sto provando con jsoup a collegarmi al sito, ma mi da` errore!


Connection.Response res = Jsoup.connect("site")
.data("username", "", "password", "")
.method(Method.POST)
.execute();

e l'errore e` questo

Exception in thread "main" org.jsoup.HttpStatusException: HTTP error fetching URL. Status=401, URL=site
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:449)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:424)
at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:178)
at org.jsoup.helper.HttpConnection.get(HttpConnection.java:167)
at ssc.energy.enipower.controller.FTPConnectAndLoginDemo.main(FTPConnectAndLoginDemo.java:24)


ovviamente username e password sono giuste ;)

Il problema secondo me e` che non ho un form di login, ma mi appare a popup la schermata di inserimento di username e password del browser, come se facessi un accesso ftp.

ora mi chiedo, come faccio a verificare se e` realmente ftp e non http???
Come faccio a collegarmi per creare questa procedura?

franksisca
03-06-2014, 12:42
Risolto, copio qui cosi` magari qualcuno puo` usufruirne (e magari aggiungere informazioni)

package ssc.energy.enipower.controller;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Authenticator;
import java.net.MalformedURLException;
import java.net.PasswordAuthentication;
import java.net.URL;

public class FTPConnectAndLoginDemo {

public static void main(String[] args) throws IOException, IllegalStateException {
String un = "site";
System.out.println("URL: " + un);
URL url;
BufferedReader stream;
try {
Authenticator.setDefault(new MiaAutenticazione());
url = new URL(un);
try {
stream = new BufferedReader(new InputStreamReader(url.openStream()));
String l;
try {
while ((l = stream.readLine()) != null) {
System.out.println(l);
}
} catch (IOException e) {
System.out.println("Errore di lettura.");
}
} catch (IOException e) {
e.printStackTrace();
stream = null;
System.exit(0);
}
} catch (MalformedURLException e) {
}
}
}

class MiaAutenticazione extends Authenticator {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("", "".toCharArray());
}

}