连接到需要用户/密码的网络

时间:2010-08-03 21:42:36

标签: java http url login

我对Java有点新,而且更多的是连接它。我正在尝试创建一个程序来连接到一个网站(“www.buybackprofesional.com”),我想下载图片并从汽车中获取一些文本(登录后你必须输入一个车牌号来访问汽车的文件)。

这就是我现在所拥有的,但它总是说会话已经过期,我需要一种方法来使用主页的用户名和密码登录,我是对的吗?有人可以给我一些建议吗?感谢

注意:我想用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;
}

这将在我需要的页面上提交表单信息,之后,使用cookies我可以保持联系!

1 个答案:

答案 0 :(得分:1)

要使用java连接到网站,请考虑使用httpunithttpcore(由apache提供)。他们处理的会话比你(或我)可以自己做得好得多。

编辑:修正了链接的位置。谢谢你的纠正!