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

Macros et VBA Excel Discussion :

WinHttpRequest requête POST [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 159
    Par défaut WinHttpRequest requête POST
    Bonjour,

    Alors voila j'ai un petit soucis avec une requête WinHttpRequest qui quand elle est trop longue est tronqué.

    En admettant que xmldoc ("Microsoft.XMLDOM") contient le xml que je veux envoyer et la fonction suivante:
    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
    Set whrReq = New WinHttp.WinHttpRequest
    With whrReq
    .Open "POST", "https://monserveur.com/importexprot"
    .SetTimeouts 30000, 30000, 30000, 30000
    .SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
     
    .SetCredentials "toto", "test", HTTPREQUEST_SETCREDENTIALS_FOR_SERVER
    .Send "&flow='import'&iename='Test.test'&xmldata=" + xmldoc.XML
     
    .WaitForResponse 30000
    If .StatusText = "OK" Then
    getHTTPResponse = .ResponseText
    MsgBox "Ok c'est passé!"
    End If
    If .StatusText <> "OK" Then
    getHTTPResponse = ""
    MsgBox "C'est PAS passé!"
    End If
    End With
    Set whrReq = Nothing
    Le problème est que si mon XML devient trop grand il se fait automatiquement tronqué...

    Avez-vous une idée de ou je dois chercher pour résoudre ce problème?

    Pour info mon authentification marche et si le XML est plus petit je le recoit en entier et je peux le traiter.

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 159
    Par défaut
    Bon après quelques recherches je viens de remarquer que c'est de faire:

    xmldoc.XML qui renvoit un XML tronqué!

    Donc la je sais plus trop quoi faire pour corriger ce problème alors si vous auriez une idée ca serai génial ?

    Merci

  3. #3
    Expert confirmé
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Par défaut
    Bjr,

    Citation Envoyé par totoen Voir le message
    xmldoc.XML qui renvoit un XML tronqué!
    y a-t-il une erreur dans le xmldoc?
    il y a un objet parseerror ou quelque chose d'approchant dans lequel il y a les éventuelles erreurs du XML

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 159
    Par défaut
    Citation Envoyé par Arkham46 Voir le message
    Bjr,



    y a-t-il une erreur dans le xmldoc?
    il y a un objet parseerror ou quelque chose d'approchant dans lequel il y a les éventuelles erreurs du XML

    Non je n'ai pas d'erreur dans parseerror et mon xml est valide

    Par exemple j'arrive à sauvegarder mon xml dans un fichier mais quand je veux l'envoyé il arrive tronqué sur le serveur!


    Méthode pour sauver dans une fichier (si ca peux aider):
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Private Sub SaveFile(xmldoc, Version)
    '-- Indenter le fichier créé
    Set rdr = CreateObject("MSXML2.SAXXMLReader")
    Set wrt = CreateObject("MSXML2.MXXMLWriter")
    Set oStream = CreateObject("ADODB.STREAM")
    oStream.Open 'Ouverture objet stream..
    oStream.Charset = "ISO-8859-1"
     
    wrt.indent = True
    wrt.Encoding = "ISO-8859-1"
    wrt.output = oStream ' "Connexion" de l'objet Writer à l'objet Stream
    Set rdr.contentHandler = wrt
    Set rdr.errorHandler = wrt
    rdr.Parse xmldoc
    wrt.flush
     
     
        Dim file_name As Variant
        Dim defaultName As Variant
        defaultName = "Account" + Version + ".xml"
        ' Obtention du nom de fichier
        file_name = Application.GetSaveAsFilename(InitialFileName:=defaultName, FileFilter:="XML Files,*.xml,All Files,*.*", _
            Title:="Save As XML File Name")
     
        ' Si l'utilisateur a cliquer cancel
        If file_name = False Then Exit Sub
     
        ' Sauvegarde du nom de fichier
        If LCase$(Right$(file_name, 4)) <> ".xml" Then
            file_name = file_name & ".xml"
        End If
     
     
     
    ' Sauver le fichier créé
    oStream.SaveToFile file_name, 2
     
    ' Détruire les objets
    Set rdr = Nothing
    Set wrt = Nothing
    Set xmldoc = Nothing
    End Sub

    Et la le xml est nickel

    Merci beaucoup poiur ton aide

  5. #5
    Expert confirmé
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Par défaut
    ben alors dur dur

    ça tronque où?

    un nombre de caractères fixe?
    un caractère spécial (genre avec un accent) que l'encodage n'aime pas?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 159
    Par défaut
    Bonjour,

    Alors effectivement le xml se tronque toujours a la meme place la où il y a un & .

    Mais si j'ai pas de & mais des é, à, ü tout ce passe comme il faut! et le xml qui arrive sur le serveur est juste

    Ce qui fait que l'ore d'un appel en dure comme-ceci:
    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    .Send "&flow=import&zip=0&iename=test.test&xmldata=<?xml version='1.0' encoding='ISO-8859-1'?><Description Language='fr'>Caisse &amp; magasin</Description>"

    le xml qui arrive sur le serveur est incomplet :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml version='1.0' encoding='ISO-8859-1'?><Description Language='fr'>Caisse

    Avez-vous une solution pour que je puisse passer ce & dans mon send?

    Car à voir le & est interpréter comme un nouveau paramètre par le requète POST et donc il by-pass la fin de mon XML... enfin je suppose

    Car comme je transforme mes & en &amp; et le ' par &apos; ca me pose pas mal de problème...

    D'avance merci

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

Discussions similaires

  1. Acquitter une requête POST sur la même connexion
    Par phaby dans le forum Langage
    Réponses: 2
    Dernier message: 18/04/2006, 10h59
  2. [XML] Réponse à la requête POST VIA XML
    Par cilv1 dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 01/02/2006, 11h18
  3. [Socket] Réponse à la requête POST
    Par cilv1 dans le forum Langage
    Réponses: 4
    Dernier message: 20/10/2005, 18h18
  4. Comment envoyer une requête POST via HTTP ?
    Par pdtor dans le forum C++
    Réponses: 2
    Dernier message: 13/09/2005, 05h54
  5. Analyse de code HTML en réponse a une requête post.
    Par ghost942 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 04/06/2005, 21h40

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