Je suis en train de réaliser une sorte de proxy qui me permet d'intercepter le code html suite à une requête HTTP vers un serveur web.
La méthode DoRequest de l'objet IdHTTP fonctionne à merveille, le problème est que parfois, le serveur renvoie une erreur (par exemple code 500: Internal server error).
Cette erreur me fait planter l'application et je suis obliger de réinitialiser le programme.
Existe - t il un moyen pour "acquitter" l'erreur et continuer l'application ?
Salut,
tu peux en effet utiliser les exceptions du C++, cela n'est pas trop compliqué.
Est-ce que tu sais pourquoi parfois l'erreur apparaît ? Si oui c'est parfait, alors tu fais un if( l'erreur intervient ) { throw( string( "l'erreur est intervenue" ) ); }
Ensuite dans ton main tu devras intercepter les exceptions envoyée, apour cela tu fais ça:
...
int main( )
{
try
{
.. le code de ta fonction main! ..
}
catch( std::string in_strEx )
{
cout << in_strEx;
return 1;
}
}
Ciao
__________________________
Grégory S.
eVias Web & Software Solutions.
Développement Web et logiciel en tout genre et Open Source.
En faisant quelques recherches, j\'ai vu en effet, qu\'il était possible de traiter les exceptions en les \"catchant\", je vais essayer ça dès que possible.
Le serveur web est en fait un serveur Apache que j\'ai installé. J\'ai développé une petite dll ISAPI (TWebmodule) qui devrait me renvoyer (sans erreurs ) un flux HTML quelconque suite à une requête client
IdHTTP->DoRequest (hmGet,URL,strData,StreamResponse);
mais que j\'utilise un Browser web ou mon petit client j\'ai souvent un code d\'erreur 500 retourné.
En fait, si le serveur ma dll me repond une fois après ça fonctionne tout le temps, mais à la première requête, que ce soit avec leIdHTTP ou un browser type IE ça plante souvent.
J\'ai pas encore trouvé le moyen de voir ce qui se passe dans la dll au moment e la requête... :():