0

だから私はこの状況に陥り、2つの異なるルートを取る必要があるかもしれません. 問題は、私が生成した情報を更新しなければならないということです。すでにフォーマットと解析が完了しており、表示する準備ができています。この txt ファイル (または巨大な文字列) をサイトに入力する方法がわかりません。これを行う 1 つの方法は、Java がページと対話する方法を見つけ、情報をテキスト領域に貼り付けて、更新を保存/送信することです。もう 1 つの方法は、ページ ファイル自体を編集して、本来あるべき場所に巨大な文字列を挿入することです。私は 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 Postを使用する:

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 に答える