Rumah > Soal Jawab > teks badan
在官方文档看了下,好像openuri默认不支持timeout吧?
http://www.ruby-doc.org/stdlib-2.1.1/libdoc/open-uri/rdoc/OpenURI.html
如果不能设置timeout的话,有替代品吗?
ringa_lee2017-04-22 08:58:03
https://github.com/lostisland/faraday
conn.get do |req|
req.url '/search'
req.options.timeout = 5 # open/read timeout in seconds
req.options.open_timeout = 2 # connection open timeout in seconds
end
天蓬老师2017-04-22 08:58:03
Tak payah susah-susah, guna Net::HTTP
uri=URI(query_uri)
Net::HTTP.get(uri,:read_timeout=>30)
Ini ialah pengenalan dokumen:
buka_masa tamat[RW]
Bilangan saat untuk menunggu sambungan dibuka Sebarang nombor boleh digunakan, termasuk Terapung untuk saat pecahan Jika objek HTTP tidak dapat membuka sambungan dalam beberapa saat ini, ia menimbulkan pengecualian Net::OpenTimeout .
Biar saya menterjemahkannya dengan cara:
buka_masa tamat
Tetapkan masa menunggu maksimum apabila membuka sambungan. Nilainya boleh menjadi sebarang nombor, termasuk nombor titik terapung yang sangat kecil. Jika lukisan yang disambungkan tidak boleh dibuka dalam tempoh masa yang ditetapkan, pengecualian Net::OpenTimeout akan dilemparkan. Nilai lalai ialah sifar, yang bermaksud tiada had masa.
Ini akan mengehadkan permintaan untuk diselesaikan dalam masa 30 saat.
Terdapat juga banyak fungsi lain, seperti menetapkan pelayan proksi, sijil CA, sijil ssl, dll.
Anda boleh merujuk kepada dokumentasi untuk butiran, jadi saya tidak akan pergi ke butiran di sini.