Lire Response header après XMLHTTP Post

Herve_be Messages postés 1083 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 3 février 2025 - 4 déc. 2024 à 12:07
Herve_be Messages postés 1083 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 3 février 2025 - 6 déc. 2024 à 11:51

Bonjour,
En VB6

With CreateObject("Microsoft.XMLHTTP")
.Open "POST", "URL du script php qui fait essentiellement move_uploaded_fil" & Folder, False  ' aSync = false
.setRequestHeader "Content-Type", "multipart/form-data; boundary=" & STR_BOUNDARY
.send pvToByteArray(sPostData)
If .Status = 200 Then
' OK
Else
   Err = CStr(.Status) & " " & .StatusText
End If

J'obtiens parfois une erreur 503 Service Unavailable qui n'est pas très explicite.

Je vois qu'on peut obtenir davantage d'infos dans un Response header : comment l'obtenir et le décoder ?

Grand merci d'avance pour votre aide

A voir également:

3 réponses

jordane45 Messages postés 38423 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 février 2025 4 734
Modifié le 4 déc. 2024 à 20:26

Bonjour,

regarde du côté de la méthode .getAllResponseHeaders


0
Herve_be Messages postés 1083 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 3 février 2025 9
5 déc. 2024 à 12:51

Merci,

ceci est-il correct ?

If .Status = 200 Then
' OK
Else
   Err = CStr(.Status) & " " & .StatusText
   MsgTxt = .getAllResponseHeaders()
End If

Question subsidiaire : comment simuler cette erreur qui survient rarement ?

0
yg_be Messages postés 23471 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 février 2025 1 568 > Herve_be Messages postés 1083 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 3 février 2025
5 déc. 2024 à 14:58

Si tu as un site web en php, tu peux utiliser http_response_code() pour renvoyer un code d'erreur.

0
Herve_be Messages postés 1083 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 3 février 2025 9 > yg_be Messages postés 23471 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 février 2025
5 déc. 2024 à 15:06

http_response_code va-t-il aussi générer un header représentatif ?

0
yg_be Messages postés 23471 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 février 2025 1 568 > Herve_be Messages postés 1083 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 3 février 2025
5 déc. 2024 à 15:07

Cela permettra de vérifier que ton code fonctionne.

0
Herve_be Messages postés 1083 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 3 février 2025 9 > yg_be Messages postés 23471 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 février 2025
Modifié le 5 déc. 2024 à 15:55

Merci, http_response_code(503) fonctionne, j'obtiens
Date: Thu, 05 Dec 2024 14:47:17 GMT Server: Apache X-Powered-By: PHP/8.0.30 Cache-Control: no-cache Content-Type: text/html; charset=ISO-8859-1 X-Onecom-Cluster-Name: X-Varnish: 25067243 Age: 0 Via: 1.1 webcache2 (Varnish/trunk) Connection: keep-alive Transfer-Encoding: chunked

En débroussaillant
Date: Thu, 05 Dec 2024 14:47:17 GMT
Server: Apache X-Powered-By: PHP/8.0.30
Cache-Control: no-cache
Content-Type: text/html; charset=ISO-8859-1
X-Onecom-Cluster-Name: X-Varnish: 25067243
Age: 0
Via: 1.1 webcache2 (Varnish/trunk)
Connection: keep-alive
Transfer-Encoding: chunked

Comment comprendre pourquoi j'ai eu l'erreur 503 ?

0
jordane45 Messages postés 38423 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 février 2025 4 734
5 déc. 2024 à 18:09

Une erreur 500 est une erreur "serveur" (pb de configuration ou erreur dans le code...)

Là.. c'est une erreur 503 ..  les causes peuvent être variées

par exemple:

Le serveur est surchargé : Il reçoit trop de demandes et n’arrive pas à les gérer. Pour cette raison il répond donc avec ce message d’erreur. Les origines de ces surcharges sont très différentes : cela peut être par exemple une hausse inattendue du trafic. Une croissance continue du projet Web peut également provoquer une surcharge si dans le même temps les ressources ne sont pas mises à niveau. Des attaques de logiciels malveillants et des spams peuvent aussi être à l’origine d’une surcharge. Enfin une mauvaise programmation du système de gestion de contenu ou de l’application Web peut aussi provoquer ce phénomène.


0
Herve_be Messages postés 1083 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 3 février 2025 9
5 déc. 2024 à 18:16

La question est "pourquoi survient-elle toujours au même client ?"

Je n'ai jamais eu cette erreur alors que j'utilise intensivement ce logiciel en VB6.
Un des utilisateur la reçoit souvent, mais pas toujours, bizarre.

0
jordane45 Messages postés 38423 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 février 2025 4 734 > Herve_be Messages postés 1083 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 3 février 2025
5 déc. 2024 à 19:44

ajoute des logs côté serveur pour chaque appel à tes API et demande à l'utilisateur qui rencontre le souci de t'indiquer à quelle heure ça s'est produit... tu pourras essayer de voir l'adresse utilisée par l'utilisateur, ainsi que les paramètres envoyés et voir si tu le test de la même façon chez toi ça fonctionne correctement...

0
yg_be Messages postés 23471 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 février 2025 1 568 > Herve_be Messages postés 1083 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 3 février 2025
5 déc. 2024 à 20:07

Si je comprends bien ce que tu n'expliques pas, le client en question, c'est ton code PHP.

Comment sais-tu que cela n'arrive pas avec d'autres clients?

Ton code PHP ne se comporte peut-être pas comme un autre client, il est peut-être trop gourmand.

0
Herve_be Messages postés 1083 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 3 février 2025 9 > yg_be Messages postés 23471 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 février 2025
6 déc. 2024 à 10:02

Ce que j'appelle "client" est l'utilisateur du logiciel VB6 qui appelle le script PHP.

Ce logiciel est utilisé en moyenne 20 fois par jour par plus de 5.000 utilisateurs.

Un seul m'a signalé ce problème, je pense donc que la raison est chez lui.

0
Herve_be Messages postés 1083 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 3 février 2025 9 > jordane45 Messages postés 38423 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 février 2025
6 déc. 2024 à 10:05

Chez One.com le log n'est pas disponible directement, il faut demander le log pour un créneau donné, et comme je ne sais pas quand le problème va survenir ...

0
Herve_be Messages postés 1083 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 3 février 2025 9
Modifié le 6 déc. 2024 à 10:56

Je résume parce que ça devient compliqué :

Un de mes 5.000+ utilisateurs reçoit parfois une erreur 503 Service Unavailable lors de l'appel suivant

With CreateObject("Microsoft.XMLHTTP")
.Open "POST", "URL du script php qui fait essentiellement move_uploaded_file" & Folder, False  ' aSync = false
.setRequestHeader "Content-Type", "multipart/form-data; boundary=" & STR_BOUNDARY
.send pvToByteArray(sPostData)

.getAllResponseHeaders ne permet pas d'expliquer l'origine de l'erreur.

Pour obtenir un error log one.com m'a demandé d'ajouter dans mon script php

ini_set ('track_errors', 1);
ini_set ('log_errors', 1);
ini_set ('error_log', '/customers/e/a/4/rudyv.be/httpd.www/php_error.log');

Je simule une erreur PHP avec http_response_code(503);
l'erreur se produit bien (.Status = 503) mais je n'ai pas de fichier php_error.log.

0
yg_be Messages postés 23471 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 février 2025 1 568
6 déc. 2024 à 11:48

Ta simulation fait croire au client qu'il y a une erreur, normal qu'elle n'apparaisse pas dans le log du serveur.

0
Herve_be Messages postés 1083 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 3 février 2025 9 > yg_be Messages postés 23471 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 février 2025
6 déc. 2024 à 11:51

Alors il n'y a plus qu'à attendre qu'elle se produise à nouveau.

0