|
198 / 164 / 41
Регистрация: 13.05.2019
Сообщений: 844
|
|
Как установить read timeout?23.03.2022, 19:04. Показов 10930. Ответов 36
Метки нет (Все метки)
Всем привет. Возник важный вопрос: есть ли на сегодняшний день рабочий способ поставить read timeout на http запрос используя хоть какую-нибудь либу?
0
|
|
| 23.03.2022, 19:04 | |
|
Ответы с готовыми решениями:
36
Telegram+Telebot = Read timeout error?
Bluetooth Android. read failed, socket might closed or timeout, read ret: -1 |
|
|
||||||||||||
| 24.03.2022, 18:54 | ||||||||||||
|
А можно как-то больше конкретики? Что например вообще происходит при подключении через requests или другой клиент? Какая ошибка в конечном итоге выдается на клиенте? Или коннект так и висит на протяжении 2 часов? (это дефолтный таймаут проверки пассивных соединений TCP стеком для последующего разрыва, если на том конце никого нет) Впрочем, маршрутизаторы тоже имеют свой интервал очистки от "мертвых" сеансов - обычно он всего 10 минут. Добавлено через 31 минуту Я так понял (по некоторым issue на github) что проблема есть только при использовании https прокси. Потому что использовании http прокси read timeout работает.
Добавлено через 51 минуту Вот еще проверил на своем сервере - через http прокси:
0
|
||||||||||||
|
198 / 164 / 41
Регистрация: 13.05.2019
Сообщений: 844
|
||||||||||||||||||
| 24.03.2022, 19:11 [ТС] | ||||||||||||||||||
Добавлено через 4 минуты Не по теме: Что происходит, уже второй раз половина сообщения не отправляется
0
|
||||||||||||||||||
|
|
||
| 24.03.2022, 19:13 | ||
|
0
|
||
|
198 / 164 / 41
Регистрация: 13.05.2019
Сообщений: 844
|
|||||||
| 24.03.2022, 19:14 [ТС] | |||||||
|
Вот код, я уже выше кидал
0
|
|||||||
|
|
|||||||
| 24.03.2022, 19:17 | |||||||
0
|
|||||||
|
198 / 164 / 41
Регистрация: 13.05.2019
Сообщений: 844
|
||
| 24.03.2022, 19:17 [ТС] | ||
|
0
|
||
|
198 / 164 / 41
Регистрация: 13.05.2019
Сообщений: 844
|
|
| 24.03.2022, 19:20 [ТС] | |
|
0
|
|
|
|
||||||||
| 24.03.2022, 19:27 | ||||||||
|
Добавлено через 17 секунд
Надо подумать. Пока пазл понимания, увы, не складывается... Я так понимаю у тебя примерно такой чекер:
0
|
||||||||
|
198 / 164 / 41
Регистрация: 13.05.2019
Сообщений: 844
|
||||
| 24.03.2022, 19:40 [ТС] | ||||
|
Добавлено через 3 минуты
0
|
||||
|
|
|
| 24.03.2022, 22:22 | |
|
Matrix3007,
По поводу этого проблемного IP. Раз библиотека aiohttp вернула ответ от сервера и этот ответ был страницей самого сайта, а не запрашиваемого ресурса, то все логично. http клиент не обязан знать что он именно должен вернуть. Он должен вернуть то, что ему прислали на запрос. Любой ответ. И раз сервер вернул ответ от самого себя, значит он больше не проксирует запросы. Либо проксирует, но на другом порту. Вопрос, почему остальные клиенты на этом IP спотыкаются и ждут неизвестно чего, остается открытым. Но раз у aiohttp не возникает с проблем, то стоит использовать именно этот клиент. Но вот как отличить ответ обычного http сервера от proxy сервера я не знаю. Сейчас проверил есть ли в разница в заголовках, но нет. Хотя пишут, что некоторые прокси все-таки добавляют в ответ свои собственные нестандартные заголовки. Добавлено через 6 минут В конечном итоге не так уж важно, что чекер даст ложноположительный ответ на этот IP. Ты ведь все равно через эти прокси будешь запрашивать какие-то конкретные ресурсы. И правильный программист всегда проверяет при получении ресурса не только статус ответа, но и например html title (или что-то еще), чтобы убедиться что прислано именно то, что ожидалось. Ну я так всегда делал при парсинге...
1
|
|
|
198 / 164 / 41
Регистрация: 13.05.2019
Сообщений: 844
|
|||||||
| 25.03.2022, 14:47 [ТС] | |||||||
|
Garry Galler, Скорее всего другие либы и не отличают, они просто не могут связататься с "прокси", видимо потому что он не принимает их заголовки, а если бы смогли то так же выдавали бы ответ от сайта. По сути это и происходит, например если не передавать заголовки, вернётся ошибка 401, но по заголовкам станет понятно что это ответ именно от того сайта а не от гугла:
Добавлено через 1 час 10 минут
0
|
|||||||
|
|
|||||||
| 25.03.2022, 16:59 | |||||||
|
Matrix3007,
А вот этот http client - встроенный в Python - не пробовал? (я его так ни разу и не использовал...)
Сервер не может проанализировать заголовки не установив подключение. Просто ответом от сервера было бы что-то типа 403 Forbidden или 401 Unauthorized. Я, например, так настроил nginx для клиентов с неподходящими параметрами. Но соединение то nginx с клиентом все равно устанавливает. Если же коннекта с сервером вообще нет (то есть не состоялось традиционное TCP рукопожатие между клиентом и сервером: один руку протянул для приветствия, а второй нет; либо серверу был отправлен пакет, а он не отправил подтверждения о принятии) - будет ошибка connect timed (через установленное время).
0
|
|||||||
|
198 / 164 / 41
Регистрация: 13.05.2019
Сообщений: 844
|
|||||||||||||||
| 25.03.2022, 17:36 [ТС] | |||||||||||||||
0
|
|||||||||||||||
|
|
|||
| 25.03.2022, 19:33 | |||
|
То есть сервак ответил кодом, которого вообще нет в списке HTTP кодов. Своим собственным и добавил message - Invalid Password. Похоже, что сервер требует пароля. А requests как я понял именно это и возвращает: <Response [401]> То есть хочу авторизации. Сервер может отослать заголовки, но на тело положить болт, а клиент будет по каким-то основаниям все-таки ждать его. И read timeout в этом случае может не отработать. Так как кой-чего все-таки прислали. Можно вообще пробовать запрашивать только заголовки (и код ответа) запросом HEAD вместо GET. P.S. Как-то для одного спамерского IP я делал такой фокус - ставил ему таймер при ответе. То есть его клиент тоже тупо зависал на некоторое время, а потом мой сервер просто закрывал соединение без всякого ответа :-)
0
|
|||
|
198 / 164 / 41
Регистрация: 13.05.2019
Сообщений: 844
|
||
| 25.03.2022, 20:37 [ТС] | ||
Правда я сейчас ещё заметил что в принципе не могу с ним получить тело ответа, только заголовки.
0
|
||
|
|
|
| 25.03.2022, 21:22 | |
|
Прочитал в базе документации developer.mozilla.org как работает авторизация на прокси:
Для установки таких соединений через proxy используются другие заголовки: Proxy-Authenticate - от сервера - с указанием нужной схемы аутентификации Proxy-Authorization - от клиента - с нужными данными И http ответом на необходимость авторизации будет не 401, а 407. Так что значит это вовсе не прокся отвечает. Попробуй все-таки вместо GET использовать HEAD.
0
|
|
|
198 / 164 / 41
Регистрация: 13.05.2019
Сообщений: 844
|
||||||
| 28.03.2022, 12:57 [ТС] | ||||||
|
Garry Galler,
0
|
||||||
| 28.03.2022, 12:57 | |
|
Помогаю со студенческими работами здесь
37
HttpListener, как установить Timeout ? Ошибка 'Read Timeout' [ffmpeg] как установить timeout ожидания ? Dalay в программе.Как установить заданный timeout? Socket read timeout. Не подключается к БД Oracle Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита табличной части. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|