2013-12-18 72 views
0

嗨,這是我第一個Ruby程序。 我正在嘗試編寫一個簡單的ruby應用程序來向URL發出請求並查看它是否可用。如果是,它將打印確定,否則它將打印錯誤。紅寶石製作網頁請求

這是我到目前爲止,你可以請協助,我需要導入任何庫嗎?

class WebRequest 

    def initialize(name) 
     @name = name.capitalize 
    end 
    def makeRequest 
     puts "Hello #{@name}!" 

     @uri = URI.parse("https://example.com/some/path") 
     http = Net::HTTP.new(uri.host, uri.port) 
     http.use_ssl = true 
     http.verify_mode = OpenSSL::SSL::VERIFY_NONE # read into this 
     @data = http.get(uri.request_uri) 

    end 

end 

req = WebRequest.new("Archie") 
req.makeRequest 

回答

0

這是我已經結束了與

require 'net/http' 

class WebRequest 

    def initialize() 
     @url_addr = 'http://www.google.com/' 
    end 
    def makeRequest 

     puts "" 

     begin 
      url = URI.parse(@url_addr) 
      req = Net::HTTP::Get.new(url.path) 
      res = Net::HTTP.start(url.host, url.port) {|http| 
      http.request(req) 
      } 

      puts "OK Connected to #{@url_addr} with status code #{res.code}" 
     rescue 
      puts "Failed to connect to #{@url_addr}" 
     end 
    end 
end 

req = WebRequest.new() 
req.makeRequest 
2

下面是示例代碼做任何的要求:簡單

require 'net/http' 
require 'uri' 

url = URI.parse('http://www.example.com/index.html') 
req = Net::HTTP::Get.new(url.path) 
res = Net::HTTP.start(url.host, url.port) do |http| 
    http.request(req) 
end 
puts res.body 
+0

感謝這幫助了很多! –

0

東西:

[1] pry(main)> require 'open-uri' 
    => true 
    [2] pry(main)> payload = open('http://www.google.com') 
    => #<File:/var/folders/2p/24pztc5s63d69hhx81002bq80000gn/T/open-uri20131217-84948-ttwnho> 
    [3] pry(main)> payload.inspect 
    => "#<Tempfile:/var/folders/2p/24pztc5s63d69hhx81002bq80000gn/T/open-uri20131217-84948-ttwnho>" 
    [4] pry(main)> payload.read 

payload.read將返回響應身體,你可以很容易使用的有效載荷,因爲它File對象是Tempfile的一個實例

1
gem install httparty 

然後

require 'httparty' 
    response = HTTParty.get('https://example.com/some/pathm') 
    puts response.body