IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

Modifier les entêtes de la Requête avec xmlrpclib


Sujet :

Réseau/Web Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Juillet 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Juillet 2007
    Messages : 65
    Par défaut Modifier les entêtes de la Requête avec xmlrpclib
    Bonsoir à tous,
    je suis sur python depuis 3 jours , et je trouve ce langage très intéréssant,
    bref je suis confronté à un problème je veux écire un client XML-RPC avec la librairie xmlrpclib mais voilà que dans ma requête je dois modifier certaines informations:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    httpheader = "POST /Air HTTP/1.1\r\n",
                "Host: " ,self.Local_Ip , "\r\n",
                "Content-Type: text/xml\r\n",
                "User-Agent: " , self.userAgent , "\r\n",
                "Content-Length: " , len(texte_xml) , "\r\n",
                "Accept: *\r\n\r\n"
    voilà vous aurez remarquez mon User-Agent et autres doivent être modifiés.
    car mon serveur XML RPC doit lire ces informations dans le header pour répondre.
    En effet dans l'utilisation classique de cette librairie je ne vois pas comment modifier ces paramètres lors de ma requêtes?

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 754
    Par défaut xmlrpclib.Transport
    Salut,
    Les headers HTTP sont "dessous", dans la couche Transport.

    Pour y accéder, il faut utiliser sous classer xmlrpclib.Transport pour définir son transport "custom" comme donné dans l'exemple - doc 2.6:
    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    import xmlrpclib, httplib
     
    class ProxiedTransport(xmlrpclib.Transport):
        def set_proxy(self, proxy):
            self.proxy = proxy
        def make_connection(self, host):
            self.realhost = host
            h = httplib.HTTP(self.proxy)
            return h
        def send_request(self, connection, handler, request_body):
            connection.putrequest("POST", 'http://%s%s' % (self.realhost, handler))
        def send_host(self, connection, host):
            connection.putheader('Host', self.realhost)
     
    p = ProxiedTransport()
    p.set_proxy('proxy-server:8080')
    server = xmlrpclib.Server('http://time.xmlrpc.com/RPC2', transport=p)
    print server.currentTime.getCurrentTime()
    En fait, je n'ai pas trouvé d'autre documentation sur xmlrpclib.Transport autre que dans les sources.
    Une fois qu'on sait çà, on peut trouver plein d'exemples.

    Bon courage
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Juillet 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Juillet 2007
    Messages : 65
    Par défaut
    Merci wiztricks,
    je vais me pencher sur cette couche Transport merci pour la piste.

Discussions similaires

  1. [AC-2000] Impossible de modifier les enregistrements d'une requête
    Par mcfly37 dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 29/05/2009, 14h22
  2. Modifier les résultats d'une requête à partir de cases à cocher
    Par Oliv'83 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 09/04/2008, 17h01
  3. Réponses: 11
    Dernier message: 01/04/2008, 18h36
  4. Réponses: 6
    Dernier message: 24/06/2007, 01h13
  5. Réponses: 2
    Dernier message: 05/10/2005, 15h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo