Tôi đang cố gắng xử lý nội dung từ danh sách liên kết bằng cách sử dụng "open-uri" trong ruby (1.8.6), nhưng điều xấu xảy ra khi tôi nhận được một lỗi khi một liên kết bị hỏng hoặc yêu cầu xác thực:cách kiểm tra url mở uri tồn tại trước khi xử lý bất kỳ dữ liệu nào
open-uri.rb:277:in `open_http': 404 Not Found (OpenURI::HTTPError)
from C:/tools/Ruby/lib/ruby/1.8/open-uri.rb:616:in `buffer_open'
from C:/tools/Ruby/lib/ruby/1.8/open-uri.rb:164:in `open_loop'
from C:/tools/Ruby/lib/ruby/1.8/open-uri.rb:162:in `catch'
hoặc
C:/tools/Ruby/lib/ruby/1.8/net/http.rb:560:in `initialize': getaddrinfo: no address associated with hostname. (SocketError)
from C:/tools/Ruby/lib/ruby/1.8/net/http.rb:560:in `open'
from C:/tools/Ruby/lib/ruby/1.8/net/http.rb:560:in `connect'
from C:/tools/Ruby/lib/ruby/1.8/timeout.rb:53:in `timeout'
hoặc
C:/tools/Ruby/lib/ruby/1.8/net/protocol.rb:133:in `sysread': An existing connection was forcibly closed by the remote host. (Errno::ECONNRESET)
from C:/tools/Ruby/lib/ruby/1.8/net/protocol.rb:133:in `rbuf_fill'
from C:/tools/Ruby/lib/ruby/1.8/timeout.rb:62:in `timeout'
from C:/tools/Ruby/lib/ruby/1.8/timeout.rb:93:in `timeout'
là có một cách để kiểm tra đáp ứng (url) trước khi xử lý bất kỳ dữ liệu nào?
mã là:
require 'open-uri'
smth.css.each do |item|
open('item[:name]', 'wb') do |file|
file << open('item[:href]').read
end
end
Rất cám ơn
này không bắt lỗi 'SocketError (Không thể mở Kết nối TCP tới jsonipsdf.com:443 (getaddrinfo: nodename và servname được cung cấp, hoặc không được biết)): ' – Whitecat