एक बहुत देखने के बाद, मैं कुछ समाधान है कि काम करने लगते हैं मिल गया है, लेकिन मेरे लिए नहीं ...रूबी में HTTP पर मूल प्रमाणीकरण कैसे करें?
उदाहरण के लिए, मैं इस स्क्रिप्ट है:
require 'net/http'
require "net/https"
@http=Net::HTTP.new('www.xxxxxxx.net', 443)
@http.use_ssl = true
@http.verify_mode = OpenSSL::SSL::VERIFY_NONE
@http.start() {|http|
req = Net::HTTP::Get.new('/gb/PastSetupsXLS.asp?SR=31,6')
req.basic_auth 'my_user', 'my_password'
response = http.request(req)
print response.body
}
जब मैंने इसे चलाने के लिए, यह देता है मुझे एक पेज है कि प्रमाणीकरण के लिए अनुरोध करता है, लेकिन अगर मैं ब्राउज़र में निम्न URL लिखते हैं, मैं समस्याओं के बिना वेबसाइट में मिल:
https://my_user:[email protected]/gb/PastSetupsXLS.asp?SR=31,6
मैं भी खुले uri साथ की कोशिश की है:
module OpenSSL
module SSL
remove_const :VERIFY_PEER
end
end
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
def download(full_url, to_here)
writeOut = open(to_here, "wb")
writeOut.write(open(full_url, :http_basic_authentication=>["my_user", "my_password"]).read)
writeOut.close
end
download('https://www.xxxxxxx.net/gb/PastSetupsXLS.asp?SR=31,6', "target_file.html")
लेकिन परिणाम वही है, साइट उपयोगकर्ता प्रमाणीकरण के लिए पूछ रही है। मैं क्या गलत कर रहा हूँ के बारे में कोई सुझाव? क्या मुझे बेस 64 में पासवर्ड एन्कोड करना चाहिए?
क्या आपने यूआरएल में उपयोगकर्ता नाम और पासवर्ड जोड़ने की कोशिश की है, वैसे ही आप इसे ब्राउज़र में डाल देंगे? –
हां, ज़ाहिर है, लेकिन वह तरीका उन पुस्तकालयों के लिए समर्थित नहीं है। –