1

URL が存在するにもかかわらず、Ruby で以下の URL に接続するとエラーが発生します。何故ですか?

1.9.3p194 :003 > require 'uri'
 => true 
1.9.3p194 :004 > require 'net/http'
 => true 
1.9.3p194 :005 > url = "https://blogs.oracle.com/ksplice/entry/introducing_redpatch"
 => "https://blogs.oracle.com/ksplice/entry/introducing_redpatch" 
1.9.3p194 :006 > url_parsed = URI.parse(url)
 => #<URI::HTTPS:0x00000001939288 URL:https://blogs.oracle.com/ksplice/entry/introducing_redpatch> 
1.9.3p194 :007 > response = Net::HTTP.get_response(url_parsed)
Errno::ECONNRESET: Connection reset by peer
4

2 に答える 2

2

Net::HTTP を使用する代わりに、生活を簡素化し、Ruby のOpenURIを使用してください。低レベルの制御や低レベルの値の可視性が必要でない限り、OpenURI で十分であることがわかります。

require 'open-uri'
url = "https://blogs.oracle.com/ksplice/entry/introducing_redpatch"
open(url).read.size
=> 35493
于 2012-11-29T19:11:42.803 に答える
2

これを使って

url = "https://blogs.oracle.com/ksplice/entry/introducing_redpatch"
uri = URI.parse(url)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(uri.request_uri)

response = http.request(request)
response.body

ここから取られています: http://www.rubyinside.com/nethttp-cheat-sheet-2940.html

于 2012-11-29T17:29:22.933 に答える