2016-06-14 4 views
1

J'ai la requête curl suivante que je souhaiterais traduire en requête API RestClient.Envoi d'une requête POST avec les en-têtes RestClient et Authentication

curl -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Authorization: Token user_token="tokenhere", email="[email protected]"' -X POST "https://api.myapi.io/reports?start_date=2016-05-10&end_date=2016-05-12" -v 

J'ai essayé ce qui suit comme un RESTClient POST mais je continue à obtenir un 401. Quand je fais la demande boucle je reçois une réponse.

url = "https://api.myapi.io/reports?start_date=2016-05-10&end_date=2016-05-12" 

RestClient.post(url, :authorization => 'Token email="[email protected]" user_token="tokenhere"', :content_type => 'application/json', :accept => 'application/json') 

Des idées?

+1

L'en-tête 'Authorization' est différent (ordre différent, virgule manquante). Peut-être que c'est ça? – smarx

+0

Bien sûr, votre ligne 'url = ...' manque également une citation, alors peut-être que ce ne sont que des fautes de frappe. :-) – smarx

+0

@smarx est ce que tu veux dire? J'ai essayé ceci et cela n'a pas fonctionné J'ai eu la même réponse: '' 'RestClient.post (url,: autorisation => 'Token user_token =" tokenhere ", email =" [email protected] "',: content_type = > 'application/json',: accept => 'application/json') '' ' – locoboy

Répondre

0

La chaîne que vous attendez est:

'Token user_token="tokenhere", email="[email protected]"' 

La ligne que vous envoyez est:

'Token email="[email protected]" user_token="tokenhere"' 

Les paramètres sont basculés autour. :) Si cela ne fonctionne pas, je vérifierais et m'assurerais que la requête curl attend des caractères échappés. Vous pouvez effectivement envoyer ceci:

"Token email=\"[email protected]\" user_token=\"tokenhere\"" 
+0

J'ai essayé d'utiliser ceci mais cela n'a pas fonctionné :( – locoboy

+0

Comment vérifier si la requête attend des caractères échappés? – locoboy