Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сравнение скрости передачи данных методом пост 
:(
    Опции темы
kkin
Дата 13.6.2011, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 9.8.2010

Репутация: нет
Всего: нет



Добрый день.
Хотел узнать в связи с чем, передача данных методом Post через Socket соединение отрабатывается быстрее чем 
через HttpURLConnection?

Также хотелось бы узнать у людей кто работал с веб сервисами, какими методами лучше коннектиться и передавать данные методом Post/ на порт 443 ?
На личном опыте были испробованы методы Socket и HttpURLConnection. из этого получилось данная тема.



Это сообщение отредактировал(а) kkin - 20.6.2011, 11:11
PM   Вверх
COVD
Дата 13.6.2011, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 11
Всего: 43



Не быстрее, HttpURLConnection тоже использует Socket соединение.  
PM MAIL   Вверх
kkin
Дата 14.6.2011, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 9.8.2010

Репутация: нет
Всего: нет



Я тоже предполагал, что должно работать одинаково.
Написал два класса с этими методами, поставил System.currentTimeMillis(); перед соединением  и System.currentTimeMillis(); после того ка данные переданы в буфер 
и получил 
при Socket соединении получаю в среднем 1сек 2мил
При HttpURLConnection время составляет  2- 3 секунды 
PM   Вверх
Skipy
Дата 14.6.2011, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 487
Регистрация: 24.8.2006
Где: Москва, Россия

Репутация: 4
Всего: 16



А Вы уверены, что не сравниваете размеры трюфелей во Франции с ценой на дрова в Зимбабве? В какие буферы Вы передаете данные? Приведите код клиентской части для обоих тестов и код серверной части, которая этот тест обслуживает.


--------------------
С уважением,
Евгений aka Skipy
www.skipy.ru
PM MAIL WWW ICQ   Вверх
kkin
Дата 14.6.2011, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 9.8.2010

Репутация: нет
Всего: нет



Вот по сокету 
Код

  k= System.currentTimeMillis();
      sock = (SSLSocket)factory.createSocket(url.getHost(), url.getDefaultPort());  
    }
    catch (Exception e) {
        System.out.println("Error connect " +e );
    }

    try {
        bwr = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream(),"utf-8"));
                 bwr.write("POST "+url.getPath()+"/Check HTTP/1.1\r\n");
        bwr.write("Host: "+url.getHost()+"\r\n");
        bwr.write("Content-Length: " + msg3.length() + "\r\n");
        bwr.write("Content-Type: application/x-www-form-urlencoded\r\n");
        bwr.write("Connection: close\r\n");
        bwr.write("\r\n");
        //Send data
        bwr.write(msg3);
        bwr.flush();
    }
    catch (IOException e){
        System.out.println(""+e);
    }
        
    try {
        brd = new BufferedReader(new InputStreamReader(sock.getInputStream()));
        System.out.println((System.currentTimeMillis()-k)/100);


ВОТ по HttpURLConnection

Код

      k=  System.currentTimeMillis();    
         conn = (HttpURLConnection) url.openConnection();
         conn.setRequestMethod("POST");
                 
      }
      catch (Exception e) {
        System.out.println("e "+e);
    }
                conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
      conn.setRequestProperty("Content-Length", Integer.toString(msg3.getBytes().length));
         conn.setDoOutput(true);
         conn.setDoInput(true);
        
         try{
            
    BufferedWriter  wr = new BufferedWriter(new OutputStreamWriter(conn.getOutputStream(),"utf-8"));
                wr.write(msg3);
                wr.flush();
             }
             catch (Exception e) {
                System.out.println("e3 "+e);
            }     

                try{    
            BufferedReader bufR = new BufferedReader(new InputStreamReader(conn.getInputStream()));

            System.out.println((System.currentTimeMillis()-k)/100);



Ну и где здесь трюфеля и дрова???
PM   Вверх
COVD
Дата 14.6.2011, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 11
Всего: 43



HttpURLConnection отсылает больше стандартных хедеров, чем вы в первом варианте. Если размер отсылаемых данных msg3 соизмерим с заголовком, то это может быть причиной.  
PM MAIL   Вверх
kkin
Дата 15.6.2011, 07:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 9.8.2010

Репутация: нет
Всего: нет



Цитата(COVD @ 14.6.2011,  16:15)
HttpURLConnection отсылает больше стандартных хедеров, чем вы в первом варианте. Если размер отсылаемых данных msg3 соизмерим с заголовком, то это может быть причиной.

данные в msg3  просто параметры тела запроса и равны следующему 

arg=555&name=vasya&fam=pupkin
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Работа с сетью | Следующая тема »


 




[ Время генерации скрипта: 0.0459 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.