[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.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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