यदि http://foo.com
1.2.3.4
पर रीडायरेक्ट करता है जो तब http://finalurl.com
पर रीडायरेक्ट करता है, तो मैं लैंडिंग यूआरएल "http://finalurl.com" को खोजने के लिए रूबी का उपयोग कैसे कर सकता हूं?रुबी का उपयोग करके रीडायरेक्ट के बाद मैं अंतिम यूआरएल कैसे प्राप्त कर सकता हूं?
उत्तर
वे दो तरीके है, दोनों HTTPClient और Open-URI का उपयोग कर:
require 'httpclient'
require 'open-uri'
URL = 'http://www.example.org'
httpc = HTTPClient.new
resp = httpc.get(URL)
puts resp.header['Location']
>> http://www.iana.org/domains/example/
open(URL) do |resp|
puts resp.base_uri.to_s
end
>> http://www.iana.org/domains/example/
httpc.get (URL) के बजाय httpc.head (URL) का उपयोग करना बेहतर है। यह पूरी साइट को लोड होने से रोकता है। – cavneb
सहमत हैं, * अगर * मेजबान एक हेड पर रीडायरेक्ट कर सकता/सकती है। मैंने HEAD प्रतिक्रियाएं देखी हैं जो बिना किसी रीडायरेक्ट के त्रुटि दिखाती हैं। मुझे लगता है कि ऐसा इसलिए है क्योंकि एक सिर अधिक खोजी है। और यह व्यवहार कुछ HTTPd और मानकों, या संस्करणों के लिए अलग हो गया हो सकता है, इसलिए यह अब कोई मुद्दा नहीं है। –
मैंने http, कर्ल और खुली विधियों की तुलना की और परिणाम काफी असंगत हैं। कुछ यूआरएल के लिए परिणाम देते हैं जिसके लिए अन्य नहीं करते हैं। मैं इस बात को लेकर आश्चर्यचकित हूं कि इस संगत होने के लिए वेब ब्राउजर कितने अलग-अलग मामलों को कवर करता है। काश मैं रूबी के लिए वही था। –
मैं रूबी उपयोगकर्ता का अधिक नहीं हूं, लेकिन मूलभूत रूप से आपको जो चाहिए वह HTTP शीर्षकों की व्याख्या करने के लिए कुछ है। निम्नलिखित पुस्तकालय है कि ऐसा करने के लिए प्रकट होता है: "। निम्नलिखित रीडायरेक्शन"
http://www.ensta.fr/~diam/ruby/online/ruby-doc-stdlib/libdoc/net/http/rdoc/classes/Net/HTTP.html
करने के लिए नीचे जाएं
एक और तरीका है, Curb का उपयोग कर:
def get_redirected_url(your_url)
result = Curl::Easy.perform(your_url) do |curl|
curl.follow_location = true
end
result.last_effective_url
end
यह विश्वसनीय रूप से काम नहीं करता है। –
मैं अपने जरूरत के लिए एक RequestResolver को लागू किया है:
https://gist.github.com/lulalala/6be104641bcb60f9d0e8
यह नेट :: HTTP का उपयोग करता है, और एकाधिक रीडायरेक्ट का पालन करता है। यह सापेक्ष रीडायरेक्ट को भी संभालता है। यह मेरी सरल आवश्यकता के लिए था ताकि बग हो। यदि आप एक खोजते हैं तो कृपया मुझे बताएं।
JRuby
के लिए इस
def get_final_url (url)
final_url = ""
until url.nil? do
final_url = url
url = Net::HTTP.get_response(URI.parse(url))['location']
end
final_url
end
- 1. मैं जावास्क्रिप्ट का उपयोग कर रीडायरेक्ट यूआरएल कैसे प्राप्त कर सकता हूं?
- 2. मैं एक यूआरएल पर कैसे रीडायरेक्ट कर सकता हूं?
- 3. एक्सएसएलटी का उपयोग करके मैं यूट्यूब यूआरएल का विश्लेषण कैसे कर सकता हूं?
- 4. PHP का उपयोग कर वेबसाइट के अंतिम, पुनर्निर्देशित, कैनोलिक यूआरएल को मैं कैसे प्राप्त करूं?
- 5. अमरूद का उपयोग करके मैं यह कैसे कर सकता हूं?
- 6. रुबी कॉल का उपयोग करके एसएसएच और एससीपी का उपयोग करके मैं फ़ाइलों को कैसे स्थानांतरित कर सकता हूं?
- 7. urllib2.urlopen का उपयोग करते समय मुझे अंतिम रीडायरेक्ट यूआरएल कैसे मिल सकता है?
- 8. मैं यूआरएल के केवल एक हिस्से का परीक्षण कैसे कर सकता हूं जिसे मैं रीडायरेक्ट कर रहा हूं (assert_redirected_to का उपयोग करके)?
- 9. मैं पीडीडीव का उपयोग करके Django कमांड को कैसे रीडायरेक्ट कर सकता हूं?
- 10. फेसबुक ग्राफ़ एपीआई का उपयोग करके, मैं किसी पृष्ठ की सामग्री कैसे प्राप्त कर सकता हूं?
- 11. मैं curl का उपयोग कर गंतव्य यूआरएल कैसे प्राप्त कर सकता हूं?
- 12. रुबी में यूआरएल से डोमेन नाम प्राप्त करने के लिए मैं किस रेगेक्स का उपयोग कर सकता हूं?
- 13. रुबी का उपयोग करके स्ट्रिंग में किसी निश्चित चरित्र के बाद मैं सबस्ट्रिंग को कैसे हटा सकता हूं?
- 14. सी में, मैं SP2OUT_FILENO को dup2 का उपयोग करके/dev/null पर रीडायरेक्ट कैसे करूं और उसके बाद बाद में अपने मूल मान पर रीडायरेक्ट कर सकता हूं?
- 15. सी ++ में बूस्ट का उपयोग करके मैं सैमफोर के समान कुछ कैसे प्राप्त कर सकता हूं?
- 16. मैं यूआरएल की यात्रा कैसे अनुकरण कर सकता हूं?
- 17. प्ले में! 2.0 सुरक्षा विशेषता के साथ मैं लॉगिन के बाद मूल यूआरएल पर कैसे रीडायरेक्ट कर सकता हूं?
- 18. मैं jQuery के साथ देरी() के बाद रीडायरेक्ट कैसे कर सकता हूं?
- 19. इरादा यूआरएल रीडायरेक्ट + लॉगिन के बाद डिफ़ॉल्ट रीडायरेक्ट?
- 20. मैं कैसे निर्धारित कर सकता हूं कि एक यूआरएल रीडायरेक्ट करता है या नहीं?
- 21. मैं ओपनआईडी के लिए रिटर्न यूआरएल कैसे बदल सकता हूं?
- 22. मैं LibGit2Sharp का उपयोग करके गिट रिपॉजिटरी से फ़ाइल बाइनरी डेटा कैसे प्राप्त कर सकता हूं?
- 23. एक्सेलेरोमीटर का उपयोग करके मैं आंदोलन की दिशा कैसे प्राप्त कर सकता हूं?
- 24. मैं इसके मूल्य का उपयोग करके एक प्रमुख नाम (हैश में) कैसे प्राप्त कर सकता हूं?
- 25. मैं xmllint और XPath का उपयोग करके एक विशेषता से मूल्य कैसे प्राप्त कर सकता हूं?
- 26. आर का उपयोग करके मैं कैसे भेज/प्राप्त कर सकता हूं (एसएमटीपी/पीओपी 3) ईमेल?
- 27. टेस्ट/यूनिट, मिनीटेस्ट का उपयोग करके मैं ऑटोटैस्ट में रंगीन आउटपुट कैसे प्राप्त कर सकता हूं?
- 28. HTTP रीडायरेक्ट के बिना मैं एक नया 'प्रमाणीकरण कोड' कैसे प्राप्त कर सकता हूं?
- 29. YASnippet का उपयोग करके स्निपेट के भीतर मैं स्निपेट का विस्तार कैसे कर सकता हूं?
- 30. Ember.js का उपयोग करके, दृश्य के बाद मैं कुछ जेएस कैसे चला सकता हूं?
काम किया तो हम बता सकते हैं कि तुम क्या HTTP क्लाइंट का उपयोग कर रहे हैं कृपया कुछ नमूना कोड दिखा। –
मैंने अंतिम रीडायरेक्ट यूआरएल प्राप्त करने के लिए [final_redirect_url] (https://rubygems.org/gems/final_redirect_url) मणि का उपयोग किया था। यह स्ट्रिंग के रूप में अंतिम यूआरएल देता है। – Indyarocks