【问题标题】:Requesting Base64 encoded URL with Faraday in Ruby on Rails在 Ruby on Rails 中使用 Faraday 请求 Base64 编码的 URL
【发布时间】:2017-07-26 09:30:07
【问题描述】:

我需要从以 Base64 形式向我提供 URL 的服务器获取一些数据。我通常使用 Faraday 连接 JSON API(这是返回格式)。这是一个基本示例,包括我得到的错误:

url = "data:application/json;base64,srighiuerghieurg..."
Faraday.get(url)

#=> URI::InvalidURIError: query conflicts with opaque

在任何浏览器中打开 URL 都会产生预期的 JSON,但是如何使用 Faraday 来完成这项工作?

让您了解请求的结构:

curl 'https://some.site.net/1/indexes/*/queries?some-agent=...' -H 'Accept: application/json' -H 'Accept-Encoding: gzip, deflate, br' -H 'Accept-Language: en-US,en;q=0.5' -H 'Connection: keep-alive' -H 'Content-Type: application/x-www-form-urlencoded' -H 'DNT: 1' -H 'Host: some.site.net' -H 'Origin: https://another.site.com -H 'Referer: https://another.site.com/some/path' -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240' --data '{"requests":[{"index":"some-name","params":"some=params"}]}'

【问题讨论】:

  • 你能检查协议是否存在于 url (http/https)
  • @Sajin 不是。以上就是我得到的一切。
  • 您是否尝试过从 Base64 解码 url,然后将该值用作 URL ?
  • @Nermin 我已经尝试了几个基于网络的解码器,但没有一个运气好。
  • 在浏览器中适合您的网址是什么?

标签: ruby-on-rails ruby base64 faraday


【解决方案1】:

https://ruby-doc.org/stdlib-2.2.2/libdoc/base64/rdoc/Base64.html

您可能需要先拆分,,然后拆分其余的.decode64

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多