2012-10-05 41 views
6

के साथ HTTParty मैं एक एपीआई तक पहुंचने की कोशिश कर रहा है, जिसके लिए मेरे ऐप्स आईपी को श्वेतसूचीबद्ध करने की आवश्यकता है। इसलिए, मैंने एपीआई श्वेतसूची के लिए होस्ट/आईपी प्राप्त करने के लिए हेरोकू ऐड-ऑन प्रॉक्सीमो का उपयोग किया।प्रॉक्सी

एक त्वरित परीक्षण मैं HTTParty विफल हो रहा है का उपयोग कर कनेक्टिविटी का परीक्षण करने की स्थापना की।

class FakeRequest 
include HTTParty 
http_proxy 'XX.XXX.XX.XX', 80, 'user', 'pass' 


def set_defaults 
    {:api_key=>"BLARG_BLARG", 
    :login_name=>"user", 
    :method => "do_something", 
    :response_format => "json", 
    :v => "1.0", 
    :login_password=>"pass"} 
end 


def make_post 
    HTTParty.post "https://test.com", :query => set_defaults 
end 
end 

जा रहे हैं इस तरह: अनुरोध = FakeRequest.new req.make_post

एपीआई शिकायत है कि स्रोत आईपी श्वेत सूचीबद्ध नहीं है से एक त्रुटि संदेश देता है। मैंने स्रोत आईपी को देखा और यह प्रॉक्सी का उपयोग नहीं कर रहा है। मैं प्रॉक्सी का उपयोग करके HTTParty पोस्ट कैसे बना सकता हूं, न कि मेरे आईएसपी के आईपी।

module ProximoParty 

    PROXIMO = URI.parse(ENV['PROXIMO_URL']) 

    def self.included(base) 
    base.send(:include, HTTParty) 
    base.http_proxy(PROXIMO.host, 80, PROXIMO.user, PROXIMO.password) 
    end 

end 

यह आगामी URL का उपयोग करता है जब आप एडऑन इंस्टॉल क्योंकि यह आपके Heroku एप्लिकेशन में जोड़ा जाता है:

उत्तर

3

इस मॉड्यूल मैं सिर्फ यह करने के लिए बनाया गया है। तो आप HTTP फ़ाइल के बजाय इस फ़ाइल को अपने ऐप और include ProximoParty में अपने FakeRequest क्लास में छोड़ सकते हैं और इसे "बस काम करना चाहिए"।

ऐसा लगता है कि मेरे कोड एक ही बात कर रही है अपने कोड यद्यपि कर रहा है, तो क्या मेरा अनुमान है कि है कि आप मैन्युअल आगामी के लिए ठीक से योग्यता पर ले जाने नहीं किया जा सकता है।

मैं एक ऐसी ही समस्या है, जहां यह बहुत सही बल्ले से दूर मेरे लिए काम नहीं कर रहा था में भाग गया। मेरा मानना ​​है कि समस्या यह थी कि मैं ट्रिप हो रहा था कि प्रॉक्सीमो यूआरएल में "प्रॉक्सी:" प्रोटोकॉल होना प्रतीत होता था लेकिन यह यूआरएल का यूजरनेम हिस्सा था।

फिर भी, इस या मदद मिल सकती है हो सकता है नहीं है, लेकिन मुझे पता है अगर यह होता है तो कृपया!

+0

धन्यवाद जेकोनरेल्स! मैंने आराम-क्लाइंट पर स्विच किया और HTTP :: HTTP से HTTP :: HTTP के लिए कोई फायदा नहीं हुआ। अंत में, और कई घंटों बाद, हमारे पास एक बॉक्स पर स्क्विड स्थापित करने का निर्णय लिया गया और समस्या हल हो गई। – RidingRails

+0

अगर मुझे मौका मिलता है तो मैं आपके मॉड्यूल को एक शॉट दूंगा, लेकिन अभी क्रंच मोड में। – RidingRails

+1

यह सिर्फ काम नहीं करता है। मैं वास्तव में प्रॉक्सी के साथ httparty काम करने में सक्षम नहीं था। आराम-ग्राहक का उपयोग कर समाप्त हो गया। –

0

मैं तुम्हें, स्थानीय httparty कॉल करने के लिए इस तरह की जरूरत है: यदि आप अपने मॉड्यूल में एक शामिल किए जाने के रूप में HTTParty कॉन्फ़िगर के रूप में

def make_post 
    self.post "https://test.com", :query => set_defaults 
end 
1

, आप अपने वर्ग के माध्यम से HTTParty विधि कॉल करने के लिए है, तो:

def make_post 
    self.class.post "https://test.com", :query => set_defaults 
end 
1

HTTParty निम्नलिखित proxy options का उपयोग कर एक प्रॉक्सी सर्वर पते का उपयोग कर सकते हैं।

[:+http_proxyaddr+:] Address of proxy server to use 
[:+http_proxyport+:] Port of proxy server to use. 
[:+http_proxyuser+:] User for proxy server authentication 
[:+http_proxypass+:] Password for proxy server authentication. 
0

मैंने एक लिंक शामिल किया क्योंकि इसमें लंबे सेटअप चरण शामिल हैं। लेकिन लिंक बदलने और पेज अमान्य होने के बारे में लिया गया बिंदु। हमने ईसी 2 एएमआई पर स्क्विड प्रॉक्सी सर्वर का इस्तेमाल किया और इसे एक दिन कहा।