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:
Et voici les résultats affichés sur la console:
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
Quoi que j'essaie d'envoyer Le "HttpResponseMessage.Content" = System.Net.Http.HttpConnectionResponseContentTest de transmlission HTTP
Status de succès: Réussie
Content:
System.Net.Http.HttpConnectionResponseContent
Traitement terminé
Bien que le statudCode indique la réussite je doute que le travail ait été correctement accompli.
Qu'en pensez-vous ?
Merci![]()
Partager