J'automatise une fenêtre Internet Explorer à l'aide de l'API IWebBrowser. Est-il possible d'annuler toutes les requêtes HTTP en attente dans IE/IWebbrowser?Annulation de toutes les demandes HTTP existantes dans Internet Explorer/IWebbrowser
J'ai essayé ce qui suit et aucun d'entre eux ne fonctionne.
Appel
IWebBrowser::Stop()
. Cela annule seulement la navigation et n'empêche pas les téléchargements existants de continuer.Naviguer vers '
about:blank
'. Cela arrête les nouvelles demandes, mais les requêtes HTTP existantes continueront. AppelerAbort()/Terminate()
sur chacun des gestionnairesIInternetProtocol
. Cela provoque le crash d'IE (ce qui n'est pas surprenant).
Non, il n'y a pas de moyen direct de le faire, bien que la suppression de l'instance du navigateur puisse fonctionner. Si vous intégrez FiddlerCore dans votre application, vous pouvez terminer les téléchargements en utilisant FiddlerCore, mais cela représenterait beaucoup de travail pour une tâche qui n'est probablement pas super utile. – EricLaw
@watsonmw: Avez-vous trouvé la solution à ce problème? – Arpit
Si je me souviens bien, ma 'solution' consistait simplement à attendre que les requêtes se terminent, avec un timeout où je détruisais toute l'instance du navigateur si ce n'était pas le cas. Il ya aussi cette technique, peut fournir un moyen brut d'annuler les demandes: http://web.archive.org/web/20130313164317/http://www.blackfishsoftware.com/blog/don/passthroughapp_bho_toolbar_intercepting_requests_responses – watsonmw