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 :

Utilisation de la méthode HttpClient().PostAsync [Débutant]


Sujet :

VB.NET

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2010
    Messages : 257
    Par défaut Utilisation de la méthode HttpClient().PostAsync
    Bonjour,

    Je dois transmettre des données à une API WEB. Je travaille en VB.net et je n'ai jamais fait ce genre de chose.
    Je suis bien sûr allé à la pêche sur le WEB pour trouver une solution; je n'ai pas trouvé beaucoup d'exemples en VB, la plupart sont en C# mais je suis quand même arrivé à quelque chose qui parait fonctionner.
    Je fais mes essais en utilisant https://jsonplaceholder.typicode.com/todos.
    A terme je dois envoyer une liste d'objets sérialisés en Json mais je veux d'abord franchir une première étape simple en transmettant un texte. Le site utilisé renvoie ce qu'il a reçu si la transmission est bonne, je devrais donc recevoir en réponse le texte que je transmets; Ce n'est pas le cas.
    Voici mon code complet:
    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     Dim mOK As Boolean = False
     
        Sub Main()
            Console.WriteLine("Test de transmlission HTTP")
     
            Dim T As Task = EnvoyerAsync()
     
            While mOK = False
                System.Threading.Thread.Sleep(1000)
            End While
            Console.WriteLine("Traitement terminé")
            Console.ReadKey()
            Stop
        End Sub
     
        Async Function EnvoyerAsync() As Task(Of Boolean)
            Const TxtURI As String = "https://jsonplaceholder.typicode.com/todos"
     
            Dim mURI As New Uri(TxtURI)
            Dim Site As New System.Net.Http.HttpClient()
     
            Try
     
                Dim Texte As String = "TEST ENVOI"
                Dim St As New StringContent(Texte)
     
                Using maTachePost As Task(Of HttpResponseMessage) = Site.PostAsync(TxtURI, St)
     
                    Using Reponse As HttpResponseMessage = Await maTachePost
                        Using Contenu As HttpContent = Reponse.Content
     
                            Console.WriteLine("Status de succès: " & IIf(Reponse.IsSuccessStatusCode, "Réussie", "Echec"))
                            Console.WriteLine("Content: ")
                            Dim Ligne As String = Contenu.ReadAsStringAsync().Result
                            If Ligne IsNot Nothing Then
                                Console.WriteLine(Reponse.Content)
                            Else
                                Console.WriteLine("Echec de la lecture du contenu")
                            End If
                            mOK = True
                        End Using
                    End Using
                End Using
     
                Return True
     
            Catch ex As Exception
                MsgBox("Erreur: " & vbCrLf & ex.Message)
                Console.WriteLine("Erreur {0}", ex.Message)
                Return False
     
            End Try
     
        End Function
    Et voici les résultats affichés sur la console:
    Test de transmlission HTTP
    Status de succès: Réussie
    Content:
    System.Net.Http.HttpConnectionResponseContent
    Traitement terminé
    Quoi que j'essaie d'envoyer Le "HttpResponseMessage.Content" = System.Net.Http.HttpConnectionResponseContent
    Bien que le statudCode indique la réussite je doute que le travail ait été correctement accompli.

    Qu'en pensez-vous ?
    Merci

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 536
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 536
    Par défaut
    ton site de fake API indique plutôt d'utiliser la route /posts pour faire un post (cf entre autre la partie Creating Resource du guide https://jsonplaceholder.typicode.com/guide/ )

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2010
    Messages : 257
    Par défaut
    Merci Umfred pour ta réponse rapide et pertinente!
    Ca va déjà beaucoup mieux!

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/04/2007, 16h26
  2. Réponses: 20
    Dernier message: 19/09/2006, 20h52
  3. Utilisation de la méthode FIND
    Par Jeannot45 dans le forum Access
    Réponses: 3
    Dernier message: 09/01/2006, 15h41
  4. [Ant] Utilisation de la méthode clone()
    Par Shabata dans le forum ANT
    Réponses: 1
    Dernier message: 01/12/2005, 15h01
  5. [Select()/Focus()] Pb dans l'utilisation de ces méthodes
    Par Kylen dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 23/06/2005, 14h54

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