2015-03-26 1 views
0

Je suis en train d'écrire un court script en utilisant l'API de demande et j'ai besoin d'accéder à ma boîte e-mail pour récupérer des informations.Authentification à l'aide de la demande d'API

J'ai donc écrit ce code afin d'authentifier:

#! /usr/bin/python3 

import requests 

payload = {'horde_user': '', 
      'horde_pass': '', 
      'login_post': '1'} 


r = requests.post('http://webmail.technion.ac.il/login.php', data=payload) 

print(r.status_code) 
print(r.text) 

Il est évident que j'ai remplacé horde_user par mon nom d'utilisateur et mon mot de passe par horde_pass dans le dictionnaire payload.

Mais la sortie est le code source de la page initiale, alors que je m'attendais à ce que ce soit le contenu de ma boîte aux lettres.

Et le code de statut est 200 alors qu'il est censé être 302. Quelqu'un pourrait-il m'expliquer ce que je fais de mal?

Merci beaucoup d'avoir aidé!

+2

Essayez d'abord de demander la page, puis de retirer les identifiants de session de cette première requête à utiliser lors de la tentative de connexion. Je parie qu'il échoue parce que vous envoyez des identifiants de session anciens et le site Web les rejette et vous renvoie à la page de connexion avec un nouvel identifiant de session. Les identifiants de session seraient "Horde" et "horde_secret_key" dans les cookies. – RNikoopour

+0

quand j'essaie de me connecter je reçois un 200 et un message d'erreur que mon nom d'utilisateur/mot de passe semble être faux (évidemment) alors pourriez-vous fournir un compte de test? écrivez aussi 'r.text' dans un fichier .html et ouvrez-le. peut-être que vous verrez l'erreur alors. – yamm

+0

Si vous regardez la source de la page, vous verrez qu'il y a des entrées cachées - essayez de les inclure dans la charge utile. – Railslide

Répondre

1

Essayez d'abord de demander la page, puis de retirer les identifiants de session de cette première requête à utiliser lors de la tentative de connexion. Je parie que cela échoue parce que vous envoyez d'anciens identifiants de session et le site Web les rejette et vous renvoie à la page de connexion avec un nouvel identifiant de session. Les identifiants de session seraient Horde et horde_secret_key dans les cookies.

+0

Pourriez-vous me procurer un compte test ou une sorte d'identifiants valides? Je ne peux pas expérimenter sans aucun moyen de me connecter. – RNikoopour

+0

Vous aviez raison! J'ai finalement réussi à m'authentifier. Merci! –

+0

Bon marché !! Heureux d'avoir pu aider – RNikoopour