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