HttParty:设置所有请求的默认报头



在某些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