Ruby 请求 headers 还有一个 ?tag=tag
Ruby request headers but also a ?tag=tag
我正在尝试使用 ruby 脚本向 consul 发送 API 调用,我有一个命令应该接近我需要的命令,但我无法让其余的工作.
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
中的最后一个标记是一个变量,令牌也是一个变量。
你非常接近,现在这对你不起作用,因为 "X-Consul-Token" => 'AUTH_TOKEN'
被视为 url 参数而不是 header。
req.url
#=> "http://example.com?tag=tag&X-Consul-Token=AUTH_TOKEN"
req.headers
#=> {}
要解决此问题,您只需要将参数和其他 header 标签分开即可:
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"}
我正在尝试使用 ruby 脚本向 consul 发送 API 调用,我有一个命令应该接近我需要的命令,但我无法让其余的工作.
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
中的最后一个标记是一个变量,令牌也是一个变量。
你非常接近,现在这对你不起作用,因为 "X-Consul-Token" => 'AUTH_TOKEN'
被视为 url 参数而不是 header。
req.url
#=> "http://example.com?tag=tag&X-Consul-Token=AUTH_TOKEN"
req.headers
#=> {}
要解决此问题,您只需要将参数和其他 header 标签分开即可:
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"}