我试图创建一个简单的程序,从Internet下载文件(图像)并使用Ruby将其存储在我的计算机上。我得到它下载的东西,但图像看起来很奇怪。我运行Windows 10和Ruby 2.2.3。这是我的代码:
require "open-uri"
require "openSSL"
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
File.open("test.jpg", "w+") do |f|
open("https://upload.wikimedia.org/wikipedia/commons/c/c9/Moon.jpg","r") do |file|
f.puts file.read
end
end
这两行:
require "openSSL"
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
是解决我尝试通过https下载文件时出现此错误的问题:
C:/Ruby22-x64/lib/ruby/2.2.0/net/http.rb:923:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)
非常欢迎更好的解决方案!
以下是我尝试下载此图片时的一个示例:https://upload.wikimedia.org/wikipedia/commons/c/c9/Moon.jpg下载的文件如下所示:test.jpg
但它似乎只发生在图像上。 HTML文件看起来完全一样。我知道图像看起来可能会有所不同,具体取决于文件类型,但URL以.jpg结尾,当您通过chrome下载时,它会以.jpg格式存储。
所有建议表示赞赏!