java - 使用 Java 填写表格,可能控制浏览器?

标签 java cookies post

此时是否可以通过 Java 填写帖子表单?我不只是使用其他工具的问题是页面必须使用帐户登录,然后我才能填写表格。这是一个简单的表单,只有 3 个输入 - 姓名、电子邮件、出生日期(文本)。但我需要设置 cookie 才能填写它们。

这是我目前的方法:

public static void doSubmit(String url, HashMap<String, String> data) throws Exception {
    URL siteUrl = new URL(url);
    HttpURLConnection conn = (HttpURLConnection) siteUrl.openConnection();
    conn.setRequestProperty("Cookie", "user=john; pass=password");
    conn.setRequestMethod("POST");
    conn.setDoOutput(true);
    conn.setDoInput(true);
    System.out.println("Debug 1: URL = "+url);

    DataOutputStream out = new DataOutputStream(conn.getOutputStream());

    Set keys = data.keySet();
    Iterator keyIter = keys.iterator();
    String content = "";
    for(int i=0; keyIter.hasNext(); i++) {
        Object key = keyIter.next();
        if(i!=0) {
            content += "&";
        }
        content += key + "=" + URLEncoder.encode(data.get(key), "UTF-8");
    }
//  System.out.println(content);
    out.writeBytes(content);
    out.flush();
    out.close();
    BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    String line = "";
    while((line=in.readLine())!=null) {
        System.out.println(line);
    }
    in.close();
}

我从另一个网站找到这个方法,这里是 HashMap

        data.put("name", "name");
        data.put("email", "email@email.com");
        data.put("dob", "1/1/1900");
        doSubmit("link.com/index.php", data);

有没有更简单的方法?可能控制浏览器,比如 Chrome 自动填写?

最佳答案

HtmlUnitSelenium .这些可以在 JWebUnit 前面如果您需要交换实现。

对于像这样微不足道的事情,HttpClient可能就足够了,但是会有更多的手动工作。

关于java - 使用 Java 填写表格,可能控制浏览器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8027353/

相关文章:

java - 如何模拟更改实例属性状态的 void 方法

java - 使用getRequestDispatcher转发无法调用文件夹下的jsp文件

java - 为什么 java.awt.Point 提供设置和获取 double 值的方法,但将 x 和 y 存储为 int 值?

javascript - 如何跟踪来自 Adwords 的访问者

javascript - node express,注销后如何清除cookie

java - 如何在同一窗口中获取几棵树的所有复选框?

php - WordPress -> 仅显示二级类别

php - 从 PHP 回发响应到 javascript

php - 使用 PHP 检索多个复选框值

javascript - 删除 cookie : how to get its path (and domain)?