2014-05-12 13 views
8

Bir şekilde HTTParty, CURL'nin düzgün çalıştığı 401 değerini döndürür. Üstbilgilerde nasıl belirtileceğini bilmiyorum.HTTPKart üzerinden yetkilendirme ve yetkilendirme

Çalışma (200): Çalışmıyor

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

(401):

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

Sadece "Authorization" => '111' ve "token" => '111' ama aynı sonucu çalıştılar. Aşağıdaki gibi çalışmasını sağlamak için yönetilen

cevap

20

. dinamik sınıfının başlıklarını ayarlamak istiyorsanız bu da çalışır

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

başlıkları bölümü en sonunda bir tırnak işareti eksik Dun ve Bradstreet için Yetkilendirme jetonu almak içindir . Olması gereken: üstbilgiler: {"Yetkilendirme" => "Simge belirteci = \" 111 \ ""}) –

+0

Sabit @BrianKunzig –

+1

Aslında "111" – kurenn

1

, bu örnek

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

için tırnak işaretleri de eklemeniz gerekmez. base_uri ile aynı şekilde, initialize yönteminde değil. Açıktır ki, başlatma yöntemine geçirilen değişkenlerden hiçbirine bağlı değildir. Örneğin, bir API için bir Yetkilendirme üstbilgisini ayarlamak için kullanabilirsiniz. – craig1410