2012-03-12 19 views
16

này hoạt động tuyệt vời:Nhận HTTPS phản ứng

require 'net/http' 

uri = URI('http://api.twitter.com/1/statuses/user_timeline.json') 
args = {include_entities: 0, include_rts: 0, screen_name: 'johndoe', count: 2, trim_user: 1} 
uri.query = URI.encode_www_form(args) 
resp = Net::HTTP.get_response(uri) 
puts resp.body 

Nhưng thay đổi từ http để https dẫn đến một lỗi vô nghĩa. Tôi không hỏi tại sao lỗi là vô nghĩa, tôi chỉ muốn biết phương thức gần nhất để làm get_response cho https là gì?

Tôi đã xem ví dụ 'HTTPS' trong tài liệu Net::HTTP nhưng có vẻ không ấn tượng lắm và sẽ làm cho tôi soạn URL theo cách thủ công từ thông số băm của tôi - không tốt.

Trả lời

21

Dưới đây là một ví dụ mà làm việc cho tôi theo của Ruby 1.9.3

require "net/http" 

uri = URI.parse("https://api.twitter.com/1/statuses/user_timeline.json") 
args = {include_entities: 0, include_rts: 0, screen_name: 'johndoe', count: 2, trim_user: 1} 
uri.query = URI.encode_www_form(args) 
http = Net::HTTP.new(uri.host, uri.port) 
http.use_ssl = true 

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

response = http.request(request) 
response.body 
+1

doc tại liên kết của tôi nói _Print phiên bản trước của ruby ​​bạn sẽ cần phải require ‘net/https’ để sử dụng HTTPS. Điều này không còn đúng._ - chúng ta có nên bỏ qua điều này không? –

+0

bạn đúng, yêu cầu "net/http" là ok, tôi sẽ chỉnh sửa câu trả lời – beanie

+1

tài liệu cũng nói _require 'net/http' cũng sẽ yêu cầu 'uri' để bạn không cần yêu cầu riêng biệt._ –

Các vấn đề liên quan