Можно скручивать, чтобы имитировать постоянное (но незанятое) открытое соединение
У меня возникают проблемы с некоторыми подключениями Http Client, возвращающими NoHttpResponseException примерно 1 раз в 3 раза.
Моя гипотеза заключается в том, что брандмауэр закрывает незанятые соединения (нестандартно).
Я хотел бы использовать завиток, чтобы имитировать это.
Я пытаюсь что-то вроде этого, но очень вероятно, что соединение никогда не простаивает
curl --keepalive-time 60 --limit-rate 128B $URL $URL $URL $URL $URL $URL $URL $URL $URL $URL $URL $URL $URL $URL
Что бы я хотел, это нечто похожее на
curl $URL
sleep 10
curl $URL
sleep 20
curl $URL
sleep 30
curl $URL
Где каждый раз (используя какую-то магию!) Curl использует одно и то же соединение.
Есть ли способ сделать это с помощью curl (или wget) и не нужно писать программу, чтобы сделать это
Ответы
Ответ 1
Нет такой вещи, которую вы не могли бы сделать с netcat.
REQ="GET / HTTP/1.1\nHost: localhost\nAccept: *\n\n"
(echo -ne $REQ; sleep 1; echo -ne $REQ; sleep 2; echo -ne $REQ) | netcat localhost 80
Измените путь к чему-то другому, чем/если вам это нужно...
Ответ 2
Нет, нет никакой возможности ни для завитки, ни для wget для этого. Когда инструмент выйдет, он закроет все соединения.
Я бы сказал, что лучший вариант для вас - использовать язык сценариев и, возможно, привязку libcurl, которая позволяет вам делать все завитки в более программном ключе. Таким образом, вы можете сделать запрос, спящий 10 секунд, а затем выполнить другой запрос, и он будет повторно использовать одно и то же соединение - насколько это возможно.
Есть привязки libcurl, доступные практически для любого языка программирования по вашему выбору, и даже если вы не используете libcurl, вы, вероятно, можете достичь этой функциональности, хотя, возможно, не так легко.
Ответ 3
Я не уверен, но если вы разрешите использовать опцию программирования, то многократное завивание в PHP может дать вам ожидаемый результат, и вам также не нужно будет использовать сон. Multi-curl будет запускать весь запрос в параллельном процессе.
Muti-Curl
Если вы хотите его использовать, я могу отправить вам код.