【问题标题】:Creating a cookie to send with faraday GET request创建一个 cookie 以使用法拉第 GET 请求发送
【发布时间】:2021-04-03 13:25:38
【问题描述】:

我试图触发一个 GET 请求,我需要发送两个 cookie(我通过在我的网站上进行身份验证后检查浏览器 cookie 来获取这些)来授权我的请求。但是,当我使用法拉第 gem 尝试以下 ruby​​ 代码时,我收到未经授权的访问错误,而当我使用邮递员发送相同的 cookie 数据时,情况并非如此( https://learning.postman.com/docs/sending-requests/cookies/)。谁能看到我做错了什么?

url = "https://someurl.com/random_data"
  resp = Faraday.get(url) do |req|
    req.headers['cookie'] = '{"credential_1":' + @credentials["credential_1"] + ',"credential_2":' + @credentials["credential_2"]}'
  end

【问题讨论】:

    标签: ruby-on-rails ruby cookies faraday


    【解决方案1】:

    由于 cookie 构造错误(需要用 ';' 拼凑在一起)而无法正常工作。通过遵循这个答案https://stackoverflow.com/a/42911732/427499,我重写了 cookie 的程序集,使其看起来像下面这样,现在可以工作了。

    url = "https://someurl.com/random_data"
    resp = Faraday.get(url) do |req|
      cookie_hash = {"credential_1" => @auth_credentials["credential_1"], "credential_2" => @auth_credentials["credential_2"]}
    
      req.headers['Cookie'] = cookie_hash.map { |key, value| "#{key}=#{value}" } .join('; ')
    end
    

    【讨论】:

      猜你喜欢
      • 2020-01-24
      • 1970-01-01
      • 2015-12-07
      • 2016-01-25
      • 2014-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多