在某些HTTP客户端中,有一种方法可以这样做:
HttpClient.default_headers = { "my-header": "a-value" }
然后客户端完成的每个请求都将包含这些标头。
是否有办法做到这与jnunemaker/httparty?
有!
class MyIntegrationClass
include HTTParty
base_uri 'https://somedomain.com/api'
headers 'my-header' => 'a-value'
def some_method
response = get('/endpoint')
JSON.parse(response.to_s, symbolize_names: true)
end
end
get请求将具有my-header
标头集。
我发现了一种无需使用类方法就能运行此工作的方法:
HTTParty::Basement.headers 'my-header' => 'a value'
你可以像这样把它和钩子一起使用:
require "httparty"
module DefaultHeadersForHttparty
extend ActiveSupport::Concern
included do
before_action :apply_http_party_headers
private
def apply_http_party_headers
HTTParty::Basement.headers 'my-header' => 'a value'
end
end
end