2014-05-12 7 views
8

के माध्यम से HTTParty और प्रमाणीकरण किसी भी तरह HTTParty 401 देता है जहां कर्ल ठीक काम करता है। सुनिश्चित नहीं है कि हेडर में टोकन कैसे पास करें।टोकन

कार्य (200):

curl http://localhost:3020/api/products -H 'Authorization: Token token="111"' 

काम नहीं कर (401):

HTTParty.get('http://localhost:3020/api/products', headers: {"Authorization: Token token" => '111'}) 

मैं सिर्फ "Authorization" => '111' और "token" => '111' लेकिन एक ही परिणाम के साथ की कोशिश की है।

उत्तर

20

इस प्रकार काम करने के लिए प्रबंधित किया गया।

HTTParty.get("http://localhost:3020/api/products", headers: {"Authorization" => "Token token=\"111\""}) 
+0

हेडर अनुभाग बहुत अंत में एक उद्धरण चिह्न नहीं है प्राप्त करने के लिए है । होना चाहिए: शीर्षलेख: {"प्रमाणीकरण" => "टोकन टोकन = \" 111 \ ""}) –

+0

फिक्स्ड @ब्रियन कुंजिग –

+1

आपको वास्तव में '111' – kurenn

1

यह भी काम करता है आप गतिशील वर्ग के हेडर सेट करना चाहते हैं, इस उदाहरण डन एंड ब्रैडस्ट्रीट के लिए प्राधिकरण टोकन

require 'httparty' 

require 'certified' 

class DnbAuth 


    include HTTParty 

    debug_output $stdout 

    base_uri "https://maxcvservices.dnb.com/rest/Authentication" 


    def initialize(ct,u,p) 

    self.class.headers 'Content-type' => "#{ct}" 

    self.class.headers 'x-dnb-user' => "#{u}" 

    self.class.headers 'x-dnb-pwd'=> "#{p}" 

    end 


    def token() 


    response = self.class.post("/") 



    end 





end 


ct = 'text/xml' 
u = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' 
p = 'xxxxxx' 

xx = DnbAuth.new(ct,u,p) 

puts xx.token.message 
+0

के उद्धरण शामिल नहीं करना है आप हेडर को भी परिभाषित कर सकते हैं प्रारंभिक विधि में इसे करने के बजाय base_uri के समान ही। जाहिर है बशर्ते यह प्रारंभिक विधि में पारित किसी भी चर पर निर्भर न हो। उदाहरण के लिए आप एपीआई के लिए प्राधिकरण शीर्षलेख सेट करने के लिए इसका उपयोग कर सकते हैं। – craig1410