在Ruby on Rails中使用Faraday请求Base64编码的URL

时间:2017-07-26 09:30:08

标签: ruby-on-rails ruby base64 faraday

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

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

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

在任何浏览器中打开URL都会产生预期的JSON,但是如何使用法拉第使这个工作?

为了让您了解请求的结构:

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"}]}'

1 个答案:

答案 0 :(得分:0)

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

你可能需要拆分剩下的第一个,然后.decode64吗?