Buongiorno a tutti,
sto cominciando ad usare java per collegarmi e scaricare il contenuto di alcune pagine web.
Mi ritrovo sempre lo stesso problema... non capisco se effettuo correttamente il login!
Anche perchè il contenuto della pagina successiva che voglio scaricare ha sempre la pagina di errore di login...
qualcuno saprebbe dirmi dove sbaglio?
ringrazio anticipatamente!!
codice:
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.io.PrintWriter;
public class ProxyTunnelDemo {
public static void main(String[] args) throws Exception{
DefaultHttpClient client=new DefaultHttpClient();
try{
HttpGet req=new HttpGet("http://forum.html.it/forum/index.php?");
HttpResponse response=client.execute(req);
HttpEntity entity=response.getEntity();
EntityUtils.consume(entity);
List <NameValuePair> cred=new ArrayList<NameValuePair>();
//eseguo la richiesta POST per sottomettere le credenziali di login
HttpPost post=new HttpPost("http://forum.html.it/forum/index.php?");
cred.add(new BasicNameValuePair("s", "f7c100489d1a646748007a7304a8b383"));
cred.add(new BasicNameValuePair("login", "action"));
cred.add(new BasicNameValuePair("username", "Eragorn87"));
cred.add(new BasicNameValuePair("password", "xxxxxxxxx"));
//setto la user e password per la richiesta POST
post.setEntity(new UrlEncodedFormEntity(cred, HTTP.UTF_8));
response=client.execute(post);
System.out.println(response.toString());
entity=response.getEntity();
EntityUtils.consume(entity);
//eseguo la seconda richiesta GET per recuperare il sorgente della pagina dei voti
HttpGet voti=new HttpGet("http://forum.html.it/forum/member.php?s=&action=editprofile");
response=client.execute(voti);
entity=response.getEntity();
StringBuilder srccd=new StringBuilder();
if(entity!=null){
BufferedReader rdr=new BufferedReader(new InputStreamReader(entity.getContent(),"UTF-8"));
int ByteR;
while((ByteR=rdr.read())!=-1){
char ch=(char)ByteR;
if(ch!='\n' && ch!='\r'){
srccd.append(ch);
}
}
rdr.close();
}
String wsc=srccd.toString();
PrintWriter out=new PrintWriter(new FileWriter("info.html"));
out.write(wsc);
out.close();
}
finally{
client.getConnectionManager().shutdown();
}
}
}