PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Httprequete et xml-rpc
Httprequete et xml-rpc
Iniciado por silvere_vautey, 31,oct. 2007 12:20 - 3 respuestas
Publicado el 31,octubre 2007 - 12:20
Bonjour,

je cherche a envoyer des commandes sur un serveur linux via RPC de la maniere suivante

url="http://mon_serveur/rpc/"
agent=""
entete_suppl=""
//requete="<?xml version='1.0'?><methodCall><methodName>12->GetProperty</methodName><params><param><value>c_version</value></param></params></methodCall>"
requete="<?xml version="+Caract(34)+"1.0"+Caract(34)+"?><methodCall><methodName>0->Create</methodName><params><param><value>IceWarpServer.APIObject</value></param></params></methodCall>"
type="text/xml"
login_rpc="xxxx"
mdp_rpc="xxxx"

HTTPTimeOut (20000)
IF HTTPRequête(url,agent,entete_suppl,requete,type,login_rpc,mdp_rpc)THEN
Info("ok")
ELSE
//ErreurInfo(errMessage)
Info("nok")
END

je suis la requete avec un analyseur de paquets, le serveur retourne "HTTP/1.1 200 OK" et pourtant httprequete retourne false

avez vous deja rencontré le problème?

merci d avance
Publicado el 06,junio 2008 - 12:57
Bonjour avez-vous résolu votre problème ?
Miembro registrado
3 mensajes
Publicado el 14,febrero 2020 - 09:57
Bonjour à tous,

je relance le sujet !
j'ai le même problème que silvere, c'est à dire que je reçois toujours une faute alors qu'avec SoapUI j'ai un retour positif...

Code :
//Variables
URL,XML_Corp sont des chaînes
sResCode,sResHeader,sResCookie sont des ANSI string

URL= "http://192.168.0.100/XMLRPC"
XML_Corp= "<?xml version='1.0'?><methodCall><methodName>auth.login</methodName><params><param><value><struct><member><name>username</name><value><string>Admin</string></value></member><member><name>password</name><value><string>1234</string></value></member></struct></value></param></params></methodCall>"

HTTPRequête(URL,"","",XML_Corp,"text/xml")

SI ErreurDétectée ALORS
Erreur(ErreurInfo(errComplet))
SINON
sResHeader = HTTPDonneRésultat(httpEntête)
sResCode = HTTPDonneRésultat(httpRésultat)
Trace(sResHeader)
Trace(sResCode)
FIN


Retour HTTP (App windev) :
HTTP/1.1 200 OK
Date: Fri, 14 Feb 2020 08:29:19 GMT
Server: Apache
Content-Length: 281
Connection: close
Content-Type: text/xml

<?xml version="1.0" encoding="windows-1252"?><methodResponse><fault><value><struct><member><name>faultString</name><value><string>No method name</string></value></member><member><name>faultCode</name><value><int>3211</int></value></member></struct></value></fault></methodResponse>


Requette via SoapUI




Retour SoapUI:
HTTP/1.1 200 OK
Date=Fri, 14 Feb 2020 08:48:47 GMT
Server=Apache
Content-Length=1615
Keep-Alive=timeout=15, max=100
Connection=Keep-Alive
Content-Type=text/xml

<?xml version="1.0" encoding="windows-1252"?><methodResponse><params><param><value><struct><member><name>response</name><value><struct><member><name>lifetime</name><value><int>15</int></value></member><member><name>if_version</name><value><string>1.5</string></value></member><member><name>session_id</name><value><string>Xkiojkd45AadPcAAAAs</string></value></member><member><name>user_type</name><value><string>btn_Test+btn_Status</string></value></member></struct></value></member><member><name>common</name><value><struct><member><name>site_code</name><value><string>TEST ABC</string></value></member><member><name>return_code</name><value><int>0</int></value></member><member><name>timestamp_gmt</name><value><dateTime.iso8601>20200214T08:48:47Z</dateTime.iso8601></value></member><member><name>timestamp_local</name><value><dateTime.iso8601>20200214T09:48:47Z</dateTime.iso8601></value></member><member><name>timestamp</name><value><dateTime.iso8601>20200214T08:48:47Z</dateTime.iso8601></value></member></struct></value></member></struct></value></param></params></methodResponse>


Problème dont le code xml est envoyé ... ?
Quelqu'un pourrait-il m'aider ?

Merci ;)
Miembro registrado
3 mensajes
Publicado el 14,febrero 2020 - 13:39
Problème résolu !
voici le code pour info :)

//Variables
MaRequete est une httpRequête
MaReponse est une httpRéponse
ResCode est un ANSI string

//Paramètres
sParametre_xml_login est une chaîne = "<?xml version='1.0'?><methodCall><methodName>auth.login</methodName><params><param><value><struct><member><name>username</name><value><string>Admin</string></value></member><member><name>password</name><value><string>1234</string></value></member></struct></value></param></params></methodCall>"

//Configurer HTTP Requête
MaRequete.Méthode = httpPost
MaRequete.URL = "http://192.168.0.100/XMLRPC"
MaRequete.ContentType = "text/xml"
MaRequete.Contenu = ChaîneVersUTF8(sParametre_xml_login)

//Execute Requête
MaReponse = HTTPEnvoie(MaRequete)

//réponse
SI ErreurDétectée ALORS
info(ErreurInfo(errComplet))
SINON
//Affiche le retour
ResCode = MaReponse.Contenu
Trace(ResCode)
FIN