2017-07-04 4 views
0

Je passe la demande suivante à ruby ​​rest-client gem;Accepter l'en-tête dans ruby ​​rest-client Je crois que cause le retour d'un code d'erreur 404

RestClient::Request.execute(method: :get, 
          url: Config['site_url'] + path, 
          verify_ssl: OpenSSL::SSL::VERIFY_NONE, 
          headers: { organisation: 'WEB', 
             accept: 'application/vnd.xyz.v2+json' }) 

Versions Gem version Ruby 2.3.3 reste client 2.0.2

J'ai passé la même demande à Postman et je reçois la réponse que je m'y attendais.

J'ai aussi une v1 de l'API qui accepte juste « : JSON » et cela répond aussi comme prévu si mon sentiment est qu'il est quelque chose autour de la

accept: 'application/vnd.xyz.v2+json' 

qui est à l'origine du problème, mais je » Je ne sais pas exactement quoi. Comme mon sentiment est s'il y avait quelque chose de mal avec la réponse alors le facteur se plaindrait également.

La documentation ici https://github.com/rest-client/rest-client en-têtes de requête par défaut: repos client définit

accept:*/* 

Juste au cas où je suis passé / (bien que je suppose * entrerez ce dont vous avez besoin), mais ce retour la réponse v1 .

La méthode url et verify_ssl fonctionnent dans plusieurs autres requêtes. Donc, je ne pense pas qu'il y ait un problème là non plus.

Quelqu'un a des suggestions? Thx

Répondre

0

Le problème n'était pas la requête, c'était l'API qui ne reconnaissait pas l'user-agent de la demande ruby. Il a également retourné un 404 quand j'ai envoyé une demande de boucle.

Lors du passage d'un

User-Agent: 

avec un navigateur/appareil mobile, l'API a répondu comme prévu.