Faraday正在将我的标题从大写字母更改为大写字母

问题描述 投票:1回答:1

[我正在使用Faraday创建将与API交互的SDK,我需要发送两个标头API_SIGNATUREAPI_REQUEST_TIME,所以这就是我创建的:]]

class APIClient
  def initialize(api_key)
    @api_key = api_key
  end

  def get_users
    request.post('/users')
  end

  private

  def request
    Faraday.new(@@BASE_API_URL, headers: headers)
  end

  def headers
    timestamp = Time.now.to_i.to_s
    return {
      API_SIGNATURE: Digest::MD5.hexdigest(@api_key + timestamp),
      API_REQUEST_TIME: timestamp
    }
  end
end

由于某种原因,法拉第将API_SIGNATURE更改为Api-Signature,将API_REQUEST_TIME更改为Api-Request-Time。是否可以防止这种情况发生?

谢谢。

我正在使用Faraday创建将与API交互的SDK,我需要发送两个标头API_SIGNATURE和API_REQUEST_TIME,所以这就是我创建的:类APIClient def initialize(...

ruby hash faraday
1个回答
1
投票
您可以将键更改为字符串,但是您会发现Net :: HTTP将键更改为:Api_signatureApi_request_time。有关更多信息,请参见此处:https://github.com/lostisland/faraday/issues/747#issuecomment-439864181

尽管可能有点棘手,但您可能会解决的一种方法是创建一个不会像这样小写自身的String类:

© www.soinside.com 2019 - 2024. All rights reserved.