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

VB.NET Discussion :

Réponse (Array) à une demande WebClient.UploadData en "POST" vers PHP [Débutant]


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mai 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2012
    Messages : 38
    Points : 29
    Points
    29
    Par défaut Réponse (Array) à une demande WebClient.UploadData en "POST" vers PHP
    Bonjour,

    Je suis entrain de revoir des lignes de code ne VB .NET qui fonctionnent mais je surpris de découvrir que le tableau de byte() renvoyé contient un retour chariot (ASCII 10) à la fin du tableau (Byte Array).
    Cela ne provoque pas d'erreur mais je ne m'explique pas la présence de ce dernier byte.
    La fonction PHP qui répond après un POST pour interroger une base de données est très simple : echo $chaine; La chaîne est "saine" en faisant un dump ou un affichage de la page en l'interrogeant par l'intermédiaire d'un "GET" directement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Using ConnexionWeb As New WebClient()
             ConnexionWeb.Headers.Add("Content-Type", "application/x-www-form-urlencoded")
             Dim responseArray As Byte() = ConnexionWeb.UploadData(Adresse URL, "POST", Encoding.ASCII.GetBytes("info à poster"))
    End Using
     
    Dim Reply as String = Encoding.ASCII.GetString(responseArray)
    Le tableau responseArray se termine par le caractère retour chariot (Line Feed 10).
    Il n'y a pas d'erreur à la conversion en string mais j'ai préféré redimensionner le tableau (Array.Resize) pour sécuriser le code.

    Est-ce la fonction WebClient.UploadData qui le fait automatiquement?

    Merci pour vos éclaircissements.

    Pascal

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mai 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2012
    Messages : 38
    Points : 29
    Points
    29
    Par défaut
    Lorsque la page appelée est en http : il y a un seul dernier caractère (ACSII 10 Line Feed)

    Lorsque la page est en https : il y a deux caractères (ASCII 13 Carriage return et ASCII 10 Line Feed)

    Cela ne provoque pas d'exception lorsque je passe des bytes à String puis de base64 à string.
    Mais j'ai préféré redimensionner le tableau de bytes au début Array.resize(tableArray, nb bytes) pour ne prendre que
    les données qui sont nécessaires.

    Ce n'est pas grave mais j'aurai aimé comprendre pourquoi. Il y a beaucoup de lecture mais pas de réponse.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mai 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2012
    Messages : 38
    Points : 29
    Points
    29
    Par défaut
    Re,

    J'ai enfin trouvé tout seul et j'en fais profiter tout le monde.

    Le problème ne vient pas du tout de VB .NET mais de PHP qui est un peu "retord" (je ne suis pas professionnel).
    Lorsque l'instruction est émise pour afficher un texte en retour, il faut terminer la page PHP par un exit;
    La sortie sans exit; sur la page PHP est logique et naturelle puisqu'il n'y a plus de code après seulement celui de fermeture (?>).

    Bizarre tout de même.

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

Discussions similaires

  1. Comment eviter une demande de réponse dans un fichier .BAT
    Par alpha_du_centaure dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 04/07/2017, 14h37
  2. Récupérer la réponse d'une demande MODBUS/JBUS en C
    Par clairetj dans le forum Débuter
    Réponses: 9
    Dernier message: 02/04/2014, 14h48
  3. [VB.NET] Incompréhention d'une demande.
    Par Abalalojik dans le forum ASP.NET
    Réponses: 31
    Dernier message: 11/01/2005, 16h30

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