![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Skynin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 1.7.2007 Где: Харьков Репутация: нет Всего: 10 |
Интернет честно прошустрил, темы на этом форуме. А ответа так и не нашел.
Разве что Neither the documentation nor the API of the HttpURLConnection class afford us any understanding of how the protocol is implemented отсюда: Dodge the traps hiding in the URLConnection class и Работа классов URL/URLConnection Итак, Делаю (детали опущены):
Все работает (со стороны сервера поцепил свой php скрипт, так что и там получаю что нужно, и ответ сбрасываю в файл) А вот как дальше мне еще раз использовать con? На con.setRequestMethod("POST"); выдает - java.net.ProtocolException: Can't reset method: already connected Пробовал и закрывать потоки, и открывать по новой, и еще что-то, но вижу что тыкаться буду долго, а понимания все нет. Вопрос: После пары POST-GET для того уже URL нужно создавать HttpURLConnection или как-то можно его использовать? подвопрос: если новый нужно, то к чему тогда указание серверу Keep-Alive, сокет ведь все равно будет новый создаваться? |
|||
|
||||
| v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: 1 Всего: 56 |
да. Добавлено через 4 минуты и 32 секунды JAVADOC: Each HttpURLConnection instance is used to make a single request but the underlying network connection to the HTTP server may be transparently shared by other instances. |
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 11 Всего: 43 |
т.е. всякий раз надо создавать новый и закрывать, а повторное использование, если возможно - дело "underlying network connection".
Аналогичный трюк имеет место при использование пула соединений с базой данных - после использования соединения вызываем close(), а на самом деле соединение возвращается в пул для повторного использования. А Keep-Alive - этот параметр запроса адресован не только вашему серверу, но и всей цепочке компьютеров в интернете, через которые осуществляется соединение. Все они должны поддерживать этот режим, что, возможно, не гарантировано на 100%. Это сообщение отредактировал(а) COVD - 27.5.2008, 15:39 |
|||
|
||||
| Skynin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 1.7.2007 Где: Харьков Репутация: нет Всего: 10 |
Да, v2v, COVD спасибо. Просто в английском слаб, пока не вчитаюсь по буквам, смысла не улавливаю. Вот иногда и нужно чтобы уткнули носом в конкретное предложение
Вот касательно Keep-Alive о методе disconnect() - Indicates that other requests to the server are unlikely in the near future. То бишь - просто дается разрешение - "можно закрывать!", а уж что там, в глубинах джавы произойдет с сокетом, закроется и когда - не нашее дело. Мне просто нужно было минималистически реализованное "постоянное" соединение с HTTP-сервером, а Jakarta httpclient-3.1 и не нужна вся, и мне пока долго разбираться, где стиль авторов, а где - свойства стандартных классов. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Работа с сетью | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |