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

标签 java http url authentication

我对 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 连接到网站,请考虑使用 httpunithttpcore (由 Apache 提供)。他们处理 session 的效果比你(或我)自己处理的要好得多。

编辑:修复了链接的位置。感谢指正!

关于java - 连接到需要用户/密码的网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3400975/

相关文章:

http - 自定义登录页面的正确 http 状态代码是什么?

http - 如何限制 IBM Integration Bus 中每个 IP 地址的 HTTP 请求数?

java - Http header "names"中的特殊字符是否有效?

php - 如何在没有 $_GET 变量的情况下从 url 获取文件名?

javascript - 如何将 URL 解析为 javascript 中的主机名和路径?

java - 为什么我无法更新sqlite数据库的值

java - GroupingBy 和 List 作为结果

java - 使用 Java 将文本数据传输到 Web 服务器

javascript - getJSON 正在添加之前的 URL。 jQuery

Java 打印基于位置