2017-07-26 5 views
0

Je dois obtenir des données d'un serveur où l'URL est fournie en tant que Base64. J'utilise habituellement Faraday pour me connecter aux API JSON (qui est le format de retour). Voici un exemple de base, y compris l'erreur que je reçois:Demande de l'URL encodée Base64 avec Faraday dans Ruby on Rails

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

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

Ouverture de l'URL dans un navigateur donne le JSON attendu, mais comment puis-je faire ce travail à l'aide de Faraday?

Pour vous donner une idée de la structure de la demande:

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

pouvez-vous vérifier si le protocole est présent dans l'URL (http/https) – Sajin

+0

@Sajin Ce n'est pas. Ce qui précède est tout ce que j'ai. – Severin

+0

Avez-vous essayé de décoder l'URL de Base64, et d'utiliser cette valeur comme URL? – Nermin

Répondre