2012-06-18 12 views
5

मैं रूबी के लिए काफी नया हूं। मैंने ऑनलाइन दस्तावेज को देखने की कोशिश की है, लेकिन मुझे कुछ भी नहीं मिला है जो काफी काम करता है। मैं निम्नलिखित HTTP अनुरोधों में उपयोगकर्ता-एजेंट शामिल करना चाहता हूं, bot get_response() और प्राप्त करें()। क्या कोई मुझे सही दिशा दिखा सकता है?HTTP अनुरोधों में उपयोगकर्ता-एजेंट, रूबी

# Preliminary check that Proggit is up 
    check = Net::HTTP.get_response(URI.parse(proggit_url)) 
    if check.code != "200" 
    puts "Error contacting Proggit" 
    return 
    end 

    # Attempt to get the json 
    response = Net::HTTP.get(URI.parse(proggit_url)) 
    if response.nil? 
    puts "Bad response when fetching Proggit json" 
    return 
    end 
+0

मुझे लगता है कि यह आपकी समस्या का समाधान है: http://www.dzone.com/snippets/send-custom-headers-ruby या http://stackoverflow.com/questions/587559/ruby-how-to-make -an-http-get-with-modified-headers – nhahtdh

उत्तर

9

Amir F सही है, तो यह है कि आप RestClient या फैराडे की तरह एक और HTTP ग्राहक उपयोग का आनंद ले सकते हैं, लेकिन आप इस तरह से आपके प्रयोक्ता एजेंट सेट कर सकते हैं यदि आप मानक रूबी पुस्तकालय के साथ रहना चाहता था:

url = URI.parse(proggit_url) 
req = Net::HTTP::Get.new(proggit_url) 
req.add_field('User-Agent', 'My User Agent Dawg') 
res = Net::HTTP.start(url.host, url.port) {|http| http.request(req) } 
res.body 
+0

धन्यवाद! ऐसा लगता है कि काम किया है! – hodgesmr

+0

रूबी 1.9.3 पर, अगर मैं इस तरह 'add_field' करता हूं, तो मैं' रूबी, माई यूजर एजेंट डॉग 'जैसे उपयोगकर्ता-एजेंट के साथ समाप्त होता हूं। –

1

Net::HTTP बहुत कम स्तर, मैं rest-client gem का उपयोग कर की सिफारिश करेंगे है - स्वचालित रूप से यह भी इस प्रकार होगा अंतरण और आप, के साथ काम करने के लिए यानी आसान हो:

require 'rest_client' 

response = RestClient.get proggit_url 
if response.code != 200 
    # do something 
end 
संबंधित मुद्दे