J'essaie d'utiliser Python pour écrire un client qui se connecte à un serveur http personnalisé qui utilise l'authentification Digest. Je peux me connecter et tirer la première requête sans problème. En utilisant TCPDUMP (je suis sur MAC OS X - je suis à la fois un MAC et un python noob), je peux voir que la première requête est en fait deux requêtes http, comme vous le feriez si vous connaissez le RFC2617. Les premiers résultats dans le 401 NON AUTORISÉ. Les informations d'en-tête renvoyées par le serveur sont correctement utilisées pour générer des en-têtes pour une deuxième requête avec certaines valeurs d'en-tête d'autorisation personnalisées qui génèrent une réponse 200 OK et la charge utile.Authentification Digest du client avec URLLIB2 ne se souvient pas des informations d'en-tête d'autorisation
Tout est génial. Mon ouvre HTTPDigestAuthHandler fonctionne, grâce à urllib2.
Dans le même programme, j'essaie de demander une seconde page différente du même serveur. Je m'attends, par la RFC, que le TCPDUMP montrera seulement une demande cette fois, utilisant presque toutes les mêmes informations d'en-tête d'autorisation (nc devrait incrémenter).
Au contraire, il commence à partir de zéro et d'abord obtient 401 et régénère les informations nécessaires à une 200.
Est-il possible d'avoir avec urllib2 demandes ultérieures avec l'authentification digest recycler les valeurs d'autorisation d'en-tête connues et seulement faire une demande ?
[Relisez que une ou deux fois jusqu'à ce qu'il est logique, je ne suis pas sûr de savoir comment le rendre plus simple]
Google a donné étonnamment peu, donc je suppose que non. J'ai regardé le code pour urllib2.py et c'est vraiment désordonné (commentaires comme: "Ce n'est pas un effort fabuleux"), donc je ne serais pas choqué si c'était un bug. J'ai remarqué que mon en-tête de connexion est fermé, et même si je le mets à keepalive, il est écrasé. Cela m'a conduit à keepalive.py mais cela n'a pas fonctionné pour moi non plus.
Pycurl ne fonctionnera pas non plus.
Je peux coder à la main l'interaction entière, mais je voudrais greffer sur les bibliothèques existantes si possible. En résumé, est-il possible avec l'authentification urllib2 et digest d'obtenir 2 pages du même serveur avec seulement 3 requêtes http exécutées (2 pour la première page, 1 pour la seconde).
Si vous avez déjà essayé cela et que vous savez déjà que ce n'est pas possible s'il vous plaît faites le moi savoir. Si vous avez une alternative, je suis tout ouïe.
Merci d'avance.