Pergunta

Somehow HTTParty returns 401 where CURL works fine. Not sure how to pass token in headers.

Working (200):

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

Not working (401):

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

I have tried with just "Authorization" => '111'and "token" => '111' but same result.

Foi útil?

Solução

Managed to get it working as follows.

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

Outras dicas

This also works if you want to set headers of the class dynamically, this example is for obtaining the Authorization token for Dun and Bradstreet

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top