Java - Взаимодействовать с сайтом для обновления информации - PullRequest
0 голосов
/ 18 февраля 2011

Итак, у меня сложилась такая ситуация, и у меня может быть 2 разных маршрута. Дело в том, что я должен обновить некоторую информацию, которую я генерирую, уже отформатирован и проанализирован и готов к отображению. Теперь я не знаю, как ввести этот текстовый файл (или гигантскую строку) на сайт. Один из способов сделать это - найти способ взаимодействия Java со страницей на 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

Ответы [ 2 ]

2 голосов
/ 19 февраля 2011

Использовать сообщение 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) {
}
1 голос
/ 19 февраля 2011

Лучше всего использовать платформу, предназначенную для автоматического тестирования, например Selenium / WebDriver или HtmlUnit .Да, вы на самом деле не запускаете тесты, но они хорошо работают для такого рода автоматизации.

...