2017-07-26 4 views
0

Ich brauche einige Daten von einem Server, wo mir die URL als Base64 zur Verfügung gestellt wird. Normalerweise verwende ich Faraday, um eine Verbindung zu JSON-APIs herzustellen (das ist das Rückgabeformat). Hier ist ein einfaches Beispiel, einschließlich der Fehler, den ich bekommen:Anfrage Base64 kodierte URL mit Faraday in Ruby on Rails

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

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

Öffnen der URL in jedem Browser liefert die erwartete JSON, aber wie kann ich diese Arbeit machen mit Faraday?

Ihnen eine Vorstellung von der Struktur des Antrags geben:

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

können Sie prüfen, ob das Protokoll in der URL vorhanden ist (http/https) – Sajin

+0

@Sajin Es ist nicht. Das obige ist alles, was ich habe. – Severin

+0

Haben Sie versucht, URL von Base64 zu dekodieren und diesen Wert als URL zu verwenden? – Nermin

Antwort