0

所以我遇到了这种情况,我可能有两条不同的路线要走。问题是我必须更新我生成的一些信息,这些信息已经格式化和解析并准备好显示。现在我不知道如何将这个 txt 文件(或巨型字符串)输入到站点中。一种方法是找到一种 Java 与页面交互的方法,将信息粘贴到文本区域并保存/提交更新。另一种方法是编辑页面文件本身,在它应该去的地方插入巨大的字符串。我一直在研究 HTTP 表单,但大多数都与第三方库一起使用。但我不知道如何做任何一条路线。我一直在检查这些网站和其他网站,但我认为有些太复杂或需要像 Selenium 这样的外部库,而且我真的没有使用 URLConnection 类的经验。谢谢您的帮助!

--我没有服务器的控制权,我可以简单地访问它,所以我认为第一个想法会更实用......

http://kspace.in/blog/2008/05/30/submit-html-form-using-java/

http://www.devcomments.com/q450155/How-to-have-Java-application-interact-with-website

4

2 回答 2

2

使用 HTTP 发布:

http://www.exampledepot.com/egs/java.net/post.html

try {
    // Construct data
    String data = URLEncoder.encode("key1", "UTF-8") + "=" + URLEncoder.encode("value1", "UTF-8");
    data += "&" + URLEncoder.encode("key2", "UTF-8") + "=" + URLEncoder.encode("value2", "UTF-8");

    // Send data
    URL url = new URL("http://hostname:80/cgi");
    URLConnection conn = url.openConnection();
    conn.setDoOutput(true);
    OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
    wr.write(data);
    wr.flush();

    // Get the response
    BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    String line;
    while ((line = rd.readLine()) != null) {
        // Process line...
    }
    wr.close();
    rd.close();
} catch (Exception e) {
}
于 2011-02-18T21:07:12.427 回答
1

最好的办法是使用为自动化测试设计的框架,例如Selenium/WebDriverHtmlUnit。是的,您实际上并没有运行测试,但它们非常适合这种自动化。

于 2011-02-18T21:07:27.857 回答