Bonjour,
J'apprends (niveau zéro) à utiliser un Web Services. Nous avons un progiciel qui utilise des Web Services pour des ajouts/modifications de données.
Si, en exploitation nous utiliserons BizTalk, aussi bien pour des tests unitaires que pour des opérations ponctuelles, je compte utiliser VbScript que je maîtrise bien mais également qui est très rapide à mettre en œuvre pour du "one shoot".

J'ai écris 2 programmes : Lecture et Écriture.
Lecture me permet de voir si le Web Services est actif. Il fonctionne parfaitement bien.
Par contre, pour Écriture, si le pg "fonctionne" apparemment bien, en réalité, pas du tout : j'essaye d'aller écrire des données via le Web Services.
Dans un premier temps, les données sont "fausses" et ont pour but, non seulement de vérifier que le pg "fonctionne" bien mais surtout pour recevoir tous les codes retour que j'aurai à gérer dans le futur. Or, quoi que j'envoie, le Web Services me renvoie un 200 au lieu d'un 201 et/ou un 204.
Hypothèses :
  • Je n'ai rien compris au code que j'ai glané ici et là (il y a beaucoup de vrai, même si je comprends la logique)
  • Le Web Services fonctionne mal
  • Le Web Services fonctionne bien, mais mon interprétation est mauvaise (et donc ... ?)
  • ...


Bref, je patauge et j'aimerai avoir vos avis.
Grand merci d'avance.
Cordialement.
Gilles Cartairade
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
MsgBox "Lecture"
  Dim strURL, http, doc
'  Dim http As MSXML2.ServerXMLHTTP60  'ServerXMLHTTP60  ou (old) ServerXMLHTTP
'  Dim doc As MSXML2.DOMDocument
  ' URL du flux à lire
  'https://solfi-test.age.dompap.net/
  ' strURL = "https://solfi-test.age.dompap.net/api/ImportStandard/ImportStandardTIT"
  ' strURL = "https://solfi-test.age.dompap.net/api/ImportStandard/GAPAIE"
  strURL = "https://solfi-test.age.dompap.net/api/ImportStandard/OD"
  ' Lecture du flux
  Set http = CreateObject("MSXML2.XMLHTTP")
  http.Open "GET", strURL, False
  http.send ""
  ' En cas de réussite, le code renvoyé est 200
  If (http.status = 200) Then
      MsgBox "OK"
      Set doc = http.responseXML
      MsgBox doc.XML
 '     Debug.Print doc.XML
  Else
      MsgBox "Retour Code Erreur : " & http.status & " - " & http.statusText, vbExclamation
  End If
  ' On libère les objets
  Set doc = Nothing
  Set http = Nothing
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
  MsgBox "Ecriture"
  Dim strURL, sEnvlength, http,doc, maj
  Set http = CreateObject("MSXML2.XMLHTTP")
  strURL = "https://solfi-test.age.dompap.net/api/ImportStandard/OD"
'  maj = "{""estModifiable"":""true"",""etablissement"":""GPMD"",""exercice"":""2017"",""monnaie"":""EUR"",""pieces"":[{""Description"":""00006348"",""Journal"":""OD"",""Objet"":""00006348"",""lignesODCompta"":[{""Compte"":""4231000"",""MontantCredit"":0,""MontantDebit"":1,""NatureAuxiliaire"":""Fournisseur"",""referenceExterne"":"""",""tiersCode"":""099990""},{""Compte"":""5122400"",""MontantCredit"":0,""MontantDebit"":0,""referenceExterne"":""""},{""Compte"":""4231000"",""MontantCredit"":0,""MontantDebit"":3,""NatureAuxiliaire"":""Fournisseur"",""referenceExterne"":"""",""tiersCode"":""099990""},{""Compte"":""5122400"",""MontantCredit"":0,""MontantDebit"":0,""referenceExterne"":""""},{""Compte"":""4231000"",""MontantCredit"":0,""MontantDebit"":3,""NatureAuxiliaire"":""Fournisseur"",""referenceExterne"":"""",""tiersCode"":""099990""},{""Compte"":""5122400"",""MontantCredit"":0,""MontantDebit"":0,""referenceExterne"":""""}],""numeroPiece"":"""",""referenceExterne"":""00006348""}]}"
  maj = "coucou"
  sEnvlength = Len(maj)
' GET : Insert   POST : Update
  http.Open "POST", strURL, False
  http.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
  http.setRequestHeader "Content-Length", sEnvlength
  http.send (maj)
  If (http.status = 200) Then
      MsgBox "OK"
      Set doc = http.responseXML
      MsgBox doc.XML
  Else
      MsgBox "Retour Code Erreur : " & http.status & " - " & http.statusText, vbExclamation
  End If
  Set doc = Nothing
  Set http = Nothing