2009-08-23 8 views
1

J'ai un petit programme C++ "SOAP CGI gatewqay" qui lit une requête HTTP SOAP de cin, récupère les informations de demande et l'envoie au serveur hérité . Ensuite, il prend la réponse, la formater en tant que réponse SOAP et l'écris à cout.Comment retourner un statut HTTP 500 à partir d'un programme CGI C++

Dans le cas d'une erreur, il écrit un < SOAP-ENV: Fault> à Reponse Cout. Toutefois, the SOAP standard indique qu'en cas d'erreur, l'état HTTP renvoyé doit être 500 "Internal Server Error". Cette passerelle CGI SOAP doit fonctionner sur n'importe quel serveur Web prenant en charge CGI. Quelle est la bonne façon de définir le statut HTTP renvoyé par le serveur Web lorsque le CGI revient?

Merci, splintor

Répondre

4

Vous écrivez un "Statut: 500 Internal Server Error" pour les en-têtes. Cela doit être écrit avant tout contenu est écrit bien sûr.

+0

Merci. J'ai trouvé cela sur d'autres sites Q & A, ainsi que sur http://stackoverflow.com/questions/833715/returning-http-status-codes-in-python-cgi, mais je n'ai trouvé aucune norme décrivant ce comportement CGI avec l'en-tête HTTP Status. Est-ce supporté par tous les serveurs web supportant CGI? – splintor

+0

C'est, si je me souviens bien, une partie de la norme CGI, donc ce serait une valeur sûre. –

+0

@splintor: Voir la section 6.3.3 de la RFC 3875: http://www.ietf.org/rfc/rfc3875 – RichieHindle

Questions connexes