Comment puis-je publier JSON via HTTP en Ruby, après la conversion de Python?
Je cède - j'ai essayé pendant des heures pour le crack de cet écrou, mais ne peut pas le comprendre. Je suis trop nouveau pour Ruby (et n'ont pas de Python à l'arrière-plan!) pour traduire cela et puis après mes données JSON à un site qui exige user/pass, et puis obtenir les données de réponse.
C'est le code Python:
r = requests.post('https://keychain.oneid.com/validate/', json.dumps(data), auth=('username', 'password'))
r.json()
où data
est:
{"some" => "data", "fun" => "times"}
Je suis en train de reproduire la fonctionnalité de ce code en Ruby pour une utilisation avec une application Rails, mais entre comprendre comment le Python requests.post()
fonctionne et ensuite écrire le code Ruby pour le POST et GET, je suis devenu totalement perdu.
J'ai essayé Net::HTTP mais je ne suis pas sûr si je devrais mettre le nom d'utilisateur/pass dans le corps ou de l'utilisation de la basic_auth
méthode -- basic_auth
semble être la seule à travailler à l'intérieur de Net::HTTP.get
... et Net::HTTP ne semble pas facilement manipuler du JSON, mais encore une fois, je pourrais être totalement hors-déjeuner, déjeuner à ce point.
Toute suggestion ou aide serait grandement appréciée!
Vous devez vous connecter pour publier un commentaire.
Utiliser le reste-client gem ou simplement l'utiliser
Net::HTTP
.Code Ruby(version 1.9.3):
Je vous recommande de prendre un coup d'oeil à la RestClient gem. Il le rend facile à traiter avec GET/POST, en plus de tout le reste des appels de REPOS. Il dispose également d'un RIR à base de coquillage appelé
restclient
disponible à partir de la ligne de commande, le rendant plus facile d'expérimenter avec vos paramètres de connexion.À partir de la documentation:
Les regardant, vous pouvez voir des similitudes avec le code Python.
Vous pouvez ajouter l'authentification de l'info pour le hachage:
Alternativement, vous pouvez utiliser le Freiner gem. Freiner utilisé libcurl, qui est un standard de l'industrie de l'outil pour la connectivité web. La documentation montre plusieurs façons d'envoyer des requêtes POST.