Заголовки запроса Ruby, но также тег? Tag = - PullRequest
0 голосов
/ 05 декабря 2018

Я пытаюсь отправить API-вызов консулу, используя скрипт ruby, и у меня есть команда, которая должна быть близка к той, которая мне нужна, но я не могу заставить остальные работать.

RestClient::Request.execute(method: :get, url: path, timeout: 10, headers: {params: {"tag": tag, "X-Consul-Token" => encode_auth_token}})

Мне нужно, чтобы вызов был таким, как если бы я сделал

curl --header "X-Consul-Token: <my token>" <my path>?tag=tag, где последний тег в ?tag=tag - это переменная, а токен - тоже переменная.

1 Ответ

0 голосов
/ 05 декабря 2018

Вы очень близки, сейчас это не работает для вас, потому что "X-Consul-Token" => 'AUTH_TOKEN' рассматривается как параметр url, а не заголовок.

req.url 
#=> "http://example.com?tag=tag&X-Consul-Token=AUTH_TOKEN"
req.headers 
#=> {}

Чтобы исправить это, вам просто нужно разделить параметры и другие теги заголовка:

req=  RestClient::Request.new(
  method: :get, 
  url: 'http://example.com/', 
  timeout: 10, 
  headers: {params: {tag: 'tag'},
           "X-Consul-Token" => 'AUTH_TOKEN'}) #notice outside of params
req.url
#=> "http://example.com?tag=tag"
req.headers 
#=> {"X-Consul-Token"=>"AUTH_TOKEN"}
...