Я сканировал диапазоны IP-адресов и хочу сократить время ожидания по таймаутам.Как указать время ожидания запроса с пакетом Джулии HTTP.jl?
Я нашел параметр readtimeout
в документах для v.0.6.15 :
conf = (readtimeout = 10,
pipeline_limit = 4,
retry = false,
redirect = false)
HTTP.get("http://httpbin.org/ip"; conf..)
Но в текущей стабильной версии v0.8.6 readtimeout
швы появляются только на стороне сервера.
Тестовый код с readtimeout=2
и v.0.8.6:
@time begin
try
HTTP.get("http://2.160.0.0:80/"; readtimeout=2)
catch e
@info e
end
end
Вывод:
113.642150 seconds (6.69 k allocations: 141.328 KiB)
┌ Info: IOError(Base.IOError("connect: connection timed out (ETIMEDOUT)", -4039) during request(http://2.160.0.0:80/))
└ @ Main In[28]:5
Таким образом, запрос занял около 114 секунд, поэтому я думаю, что этот параметр в настоящее время не поддерживается.
Редактировать Я проверил исходный код ( HTTP.jl ) стабильного выпуска:
Timeout options
- `readtimeout = 60`, close the connection if no data is received for this many
seconds. Use `readtimeout = 0` to disable.
с этим примером:
HTTP.request("GET", "http://httpbin.org/ip"; retries=4, cookies=true)
HTTP.get("http://s3.us-east-1.amazonaws.com/"; aws_authorization=true)
conf = (readtimeout = 10,
pipeline_limit = 4,
retry = false,
redirect = false)
HTTP.get("http://httpbin.org/ip"; conf..)
HTTP.put("http://httpbin.org/put", [], "Hello"; conf..)
Так что он должен работать...