我对 Java 有点陌生,对与它的连接更感兴趣。我正在尝试创建一个程序来连接到一个网站(“www.buybackprofesional.com”),我想在该网站上下载图片并从汽车中获取一些文本(登录后您必须输入车牌号才能访问汽车的文件)。
这是我现在拥有的,但它总是说 session 已过期,我需要一种使用主页的用户名和密码登录的方法,对吗?有人可以给我一些建议吗?谢谢
注意:我想用Java做,可能是我问题没说清楚
//URL web = new URL("http://www.buybackprofesional.com/DetallePeri.asp?mat=9073FCV&fec=27/07/2010&tipo=C&modelo=4582&Foto=0");
URL web = new URL("http://www.buybackprofesional.com/");
HttpURLConnection con = (HttpURLConnection) web.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; JVM)");
con.setRequestProperty("Pragma", "no-cache");
con.connect();
BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream()));
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
一位同事帮助我解决了这个问题,所以我将发布有效的代码:
public static URLConnection login(String _url, String _username, String _password) throws IOException, MalformedURLException {
String data = URLEncoder.encode("Usuario", "UTF-8") + "=" + URLEncoder.encode(_username, "UTF-8");
data += "&" + URLEncoder.encode("Contrase", "UTF-8") + "=" + URLEncoder.encode(_password, "UTF-8");
// Send data
URL url = new URL(_url);
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();
wr.close();
return conn;
}
这将在我需要的页面上提交表单信息,之后,使用 cookie 我可以保持联系!
最佳答案
要使用 java 连接到网站,请考虑使用 httpunit或 httpcore (由 Apache 提供)。他们处理 session 的效果比你(或我)自己处理的要好得多。
编辑:修复了链接的位置。感谢指正!
关于java - 连接到需要用户/密码的网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3400975/