Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Работа с сетью > Передача и получение данных на сайте


Автор: Jeka from Doneck 27.11.2008, 13:22
Как на Java сделать так чтоб - приложение подкючалось к заданному сайту http://tools.olamedia.ru/crypt/md4/ вводило в текстовое поле текст (к примеру слово test) и нажимало кнопку "Посчитать". После чего возвращало строку которая выводится в результате расчета.

Автор: AntonSaburov 27.11.2008, 13:55
Надо послать по сути HTTP-запрос - GET или POST.
Имена параметров надо смотреть в исходниках HTML-странички с которой это все отправляется.

Можно использовать commons-httpclient - смотреть на http://hc.apache.org/httpcomponents-client/index.html
Может это и не правда, но по моим воспоминаниям он требует commons-codec - http://commons.apache.org/codec/

Пример выдрал из своего старого проекта - так что вот.

Код

    private void execute() 
    {
        // create a singular HttpClient object
        HttpClient client = new HttpClient();
        // establish a connection within 5 min
        client.getHttpConnectionManager().getParams().setConnectionTimeout(300000);

        // Set parameters
        HttpMethod method = new GetMethod(url);            // Здесь вводим URL

        NameValuePair[] par = new NameValuePair[2];
        par[0] = new NameValuePair("login", login);                              // Для примера показываю как добавить два параметра
        par[1] = new NameValuePair("password", password);
        method.setQueryString(par);
        
        InputStream responseBody = null;
        try {
            client.executeMethod(method);
            responseBody = method.getResponseBodyAsStream();
            String sb = new String();
            int r = responseBody.read();
            while(r!=-1) {
                // I couldn't use StringBuffer - JVM 1.4 
                String g = String.valueOf((char)r);
                sb += g;
                r = responseBody.read();
            }
            System.out.println("Response:"+sb.toString());
            responseBody.close();
        } 
        catch(IOException e) {
            e.printStackTrace();
        }
        finally {
            method.releaseConnection();
        }
    }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)