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

Web & réseau Delphi Discussion :

[D7][W32]XML TAG idhttp


Sujet :

Web & réseau Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti

    Homme Profil pro
    Analyse système
    Inscrit en
    Juillet 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2003
    Messages : 30
    Par défaut [D7][W32]XML TAG idhttp
    Bonjour,

    J'explore les Webservices de CISCO pour la TOIP via leur CallManager.

    L'importation des WSDL ne fonctionne pas tous, beaucoup de fichier inutilisable... Bref j'envoie directement des flux XML sur des telephones IP (79xx) pour afficher des infos ou effectuer des actions. Cela marche tres bien en php, javascript ou asp. Maintenant je veux faire la même chose avec Delphi via Indy et idhttp. Petits exemples:

    en javascript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
      var authstring = text2base64(userID + ":" + password);
     
      var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
     
      pushxml = "<CiscoIPPhoneExecute><ExecuteItem Priority=\"0\" URL=\"Dial:7878\"/></CiscoIPPhoneExecute>";
      pushxml = "XML=" + Server.URLEncode(pushxml);
     
     
      xmlhttp.Open("POST", "http://" + phoneIP + "/CGI/Execute", false);
      xmlhttp.setRequestHeader("Authorization", "Basic " + authstring);
      xmlhttp.setRequestHeader("Connection", "close");
      xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      xmlhttp.Send(pushxml);
    en Delphi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
      laQuestion := TStringList.Create;
      Question := 'XML=<CiscoIPPhoneExecute><ExecuteItem Priority="0" URL="Play:chime.raw"/></CiscoIPPhoneExecute>';
      Question := 'XML=<CiscoIPPhoneExecute><ExecuteItem Priority="0" URL="Dial:8512"/></CiscoIPPhoneExecute>';
      laQuestion.Append(Question );
     
      Memo1.Lines.Append(Question );
      IdHTTP1.Request.URL := 'http://@ip-tel/CGI/Execute';
      IdHTTP1.Request.Username := 'monuser';
      IdHTTP1.Request.Password := 'monpwd';
      IdHTTP1.Request.BasicAuthentication := true;
      IdHTTP1.Request.Method := 'POST';
      IdHTTP1.Request.Connection := 'close';
      IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
      laReponse := IdHTTP1.Post('http://@ip-tel/CGI/Execute', laQuestion );
    Ce code fonctionne, le telephone repond bien, mais voici ce qui passe sur le reseaux:
    Code : 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
    19
    20
    21
    22
    23
    24
    25
    26
     
    PC --> TEL
    POST /CGI/Execute HTTP/1.0
    Connection: close
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 106
    Host: 10.x.x.x
    Accept: text/html, */*
    Accept-Encoding: identity
    User-Agent: Mozilla/3.0 (compatible; Indy Library)
    Authorization: Basic XXXXusr+pwd en base64xxxxx
    XML=%3CCiscoIPPhoneExecute%3E%3CExecuteItem%20Priority="0"%20URL="Dial:8512"/%3E%3C/CiscoIPPhoneExecute%3E
     
    TEL --> PC
    HTTP/1.1 200 OK
    Content-Type: text/xml
    Date: Tue, 07 Feb 2006 15:14:15 GMT
    Expires: Thu, 26 Oct 1995 00:00:00 GMT
    Last-Modified: Tue, 07 Feb 2006 15:14:15 GMT
    Pragma: no-cache
    Content-Length: 154
    Server: Allegro-Software-RomPager/4.20
    <?xml version="1.0" encoding="iso-8859-1"?>
    <CiscoIPPhoneResponse>
    <ResponseItem URL="Dial:7878" Data="Success" Status="0" />
    </CiscoIPPhoneResponse>
    J'envoie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XML=%3CCiscoIPPhoneExecute%3E%3CExecuteItem%20Priority="0"%20URL="Dial:8512"/%3E%3C/CiscoIPPhoneExecute%3E
    et pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <CiscoIPPhoneExecute><ExecuteItem Priority=\"0\" URL=\"Dial:7878\"/></CiscoIPPhoneExecute>
    Bref, je recherche sur ce forum et mon ami google comment refaire la fonction Server.URLEncode en Delphi, mais je seche grave.
    Si vous avez un idee, elle est la bien venue.

    @++ 8)

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Teste HttpEncode de l'unité httpapp, cela devrait je pense resoudre ton problème.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  3. #3
    Membre averti

    Homme Profil pro
    Analyse système
    Inscrit en
    Juillet 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2003
    Messages : 30
    Par défaut
    Merci Malatar,

    httpEncode fait la même convertion que IdHTTP1.Post mais shoot aussi les "=" et donc envoie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    %253CCiscoIPPhoneExecute%253E%253CExecuteItem+Priority%253D%25220%2522+URL%253D%2522Play%253Achime.raw%2522%252F%253E%253C%252FCiscoIPPhoneExecute%253E
    C'est pa bien grave mais le telephone ne gere pas ce code.

    Bref pour les acces direct au telephone, ca fonctionne comme ca.

    Encore merci, j'ouvre un autre poste pour la suite.

    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment transformer tableau html en xml tag ?
    Par lisadev dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 21/10/2008, 14h25
  2. flash xml tags?
    Par artifact02 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 16/10/2007, 17h21
  3. [XSLT] fichier.xml?tag=import récupérer avec get
    Par LeXo dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 08/10/2007, 14h28
  4. [ web.xml ] tag
    Par hocinema dans le forum ANT
    Réponses: 1
    Dernier message: 16/07/2006, 22h23
  5. [web.xml][icon]Tag "icon"
    Par ZeKiD dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 11/05/2004, 11h47

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