|
198 / 164 / 41
Регистрация: 13.05.2019
Сообщений: 844
|
|
Как установить read timeout?23.03.2022, 19:04. Показов 11110. Ответов 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 | |
|
HttpListener, как установить Timeout ? Ошибка 'Read Timeout' [ffmpeg] как установить timeout ожидания ? Dalay в программе.Как установить заданный timeout? Socket read timeout. Не подключается к БД Oracle Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|