[Résolu] pyhon & envoie d'xml par post

pyhon & envoie d'xml par post [Résolu] - Python - Programmation

Marsh Posté le 17-06-2009 à 17:37:26    

Bonjour
Je cherche à envoyer une requête à un serveur sous forme de fichier xml par un POST(il prend que ça comme requête :p)
j'ai les informations suivantes :  

Citation :

Deux méthodes sont proposées pour interroger la plateforme TOTO, HTTP(S) GET et HTTP(S) POST XML. La plateforme TOTO est accessible à l'adresse suivante :
https://toto.../TOTO/FRONT_END
Adresse du serveur : toto...
Chemin d'accès : /TOTOv9/FRONT_END
Port : 443
SSL : version 2


 
en me basant sur le doc python de httplib j'ai le script suivant :

Code :
  1. import httplib
  2. def post_omni(fichier):   
  3.     f=open(fichier)
  4.     f=f.read()   
  5.     conn = httplib.HTTPSConnection("toto...", 443)   
  6.     conn.request("POST", "/TOTOv9/FRONT_END", f) 
  7.     response = conn.getresponse()
  8.     print response.status, response.reason   
  9.     data = response.read()   
  10.     conn.close()
  11.     print data

 
 
et j'ai comme réponse  

Citation :

error: [Errno 10060] Une tentative de connexion a échoué car le parti connecté n'a pas répondu convenablement au-delà d'une certaine durée ou une connexion établie a échoué car l'hôte de connexion n'a pas répondu


 
Je ne m'y connait obsolument pas en envoie de XML par post j'a idonc suivit la doc.
 
Est-ce que y un truc que zappé ? mal fait ? ou le problème viendrait de l'url ou du serveur.
 
edit : Bon visiblement d'après les test que j'ai fait (j'ai fait un script get et j'ai regardé ce qui se passé avec wireshark) ça viendrait du proxy  
 
edit 2 : J'ai mis la main sur un script java (mon niv est proche de 0), qui contient la parti suivante  

Code :
  1. URL u = new URL(server);
  2.       URLConnection uc = u.openConnection();
  3.       HttpURLConnection connection = (HttpURLConnection) uc;
  4.       connection.setDoOutput(true);
  5.       connection.setDoInput(true);
  6.       connection.setRequestMethod("POST" );
  7.       connection.setRequestProperty("Content-Type","text/xml" );
  8.      
  9.       OutputStream out = connection.getOutputStream();     
  10.       OutputStreamWriter wout = new OutputStreamWriter(out, "UTF-8" );


 
si ça peut aider à me dire ce qui merde dans mon code ^^
 
 
 
Merci


Message édité par kantarou le 26-06-2009 à 10:39:59
Reply

Marsh Posté le 17-06-2009 à 17:37:26   

Reply

Marsh Posté le 17-06-2009 à 18:33:46    

Utilises httplib2.


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 18-06-2009 à 10:09:45    

Merci mais j'aurais préféré quelques chose de plus constructif :) , j'ai regardé un peu httplib2 et ça ne m'aide pas beaucoup

Reply

Marsh Posté le 19-06-2009 à 11:39:59    

je viens de lire que httplib2 ne permet pas de faire de connections https via http proxy :(

Reply

Marsh Posté le 24-06-2009 à 11:11:02    

J'ai un peu progresser, il s'avère que finalement je peux faire ma requête en http, j'ai donc fait le p'tit script suivant  

Code :
  1. conn = httplib.HTTPConnection("mon.proxy" )
  2.     conn.connect()
  3.     conn.request("POST", url, fichier)
  4.     r1 = conn.getresponse()
  5.     page=resp.read()
  6.     print page


 
Mais j'ai l'erreur suivante:

Citation :

File "C:\Python26\lib\socket.py", line 498, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
gaierror: [Errno 11001] getaddrinfo failed


 
j'ai essayé la chose suivante :
import socket
socket.getaddrinfo("url", 80)
ça marche
 
Bref je vais finir par flinguer le proxy  :cry:


Message édité par kantarou le 24-06-2009 à 11:12:39
Reply

Marsh Posté le 26-06-2009 à 10:41:03    

Bon ben en fait c'est la doc que j'avais qui était erroné, wireshark ^^

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed