2009-05-19 9 views
4

par exemple, nous naviguons vers http://www.ggg111.com, c'est une URL d'erreur. mais il WebBrowser afficher une page d'erreur avec ceci:Comment savoir si WebBrowser navigue sur une page d'erreur?

 
The webpage cannot be found 
HTTP 400 
    Most likely causes: 
There might be a typing error in the address. 
If you clicked on a link, it may be out of date. 

    What you can try: 
    Retype the address. 

    Go back to the previous page. 
    Go to and look for the information you want. 

Comment savoir si WebBrowser naviguer d'une page d'erreur?

vérifier également ceci: https://sso.youshang.com/sso/userAuthnAction.do1

 
HTTP Status 404 - /sso/userAuthnAction.do1 
type Status report 
message /sso/userAuthnAction.do1 
description The requested resource (/sso/userAuthnAction.do1) is not available. 
+0

Votre question n'est pas du tout clair. Je vois que vous avez étiqueté la question comme étant liée à C#. Voulez-vous dire, comment savez-vous si une requête de contrôle WebBrowser intégrée a généré un code d'erreur HTTP? –

+0

Oui, vous avez raison. –

Répondre

1

sur la base de ce contrôle: http://www.codeproject.com/KB/cpp/ExtendedWebBrowser.aspx

il est fonction NavigateError, se déclenche quand une erreur se produit pendant la navigation. voici mon code modifié:

classe add argument premier événement:


public class NavigateErrorArgs : EventArgs 
{ 
    public object StatusCode { get; set; } 

    public NavigateErrorArgs() 
      : base() 
    { } 

    public NavigateErrorArgs(object statusCode) 
      : base() 
    { 
     this.StatusCode = statusCode; 
    } 
} 

puis ajouter délégué et événement en classe ExtendedWebBrowser:


public delegate void NavigateErrorHandler(object sender, NavigateErrorArgs e); 
public event NavigateErrorHandler NavigateError; 

protected void OnNavigateError(NavigateErrorArgs e) 
{ 
    if (NavigateError != null) 
     NavigateError(this, e); 
} 
 

et modifions méthode WebBrowserExtendedEvents de classe:


public void NavigateError(object pDisp, ref object URL, ref object frame, ref object statusCode, ref bool cancel) 
{ 
    _Browser.OnNavigateError(new NavigateErrorArgs(statusCode)); 
} 
-2

pas sûr à ce sujet mais, .... essayer ...

string check = webBrowser1.DocumentText; 
     if (check.IndexOf("The webpage cannot be found") > 1) 
     { 
      MessageBox.Show("ERROR OCCURED"); 
      //what else you want to do, do here!!! 
     } 

cela va rechercher un texte donné et si trouvé exécutera autre code

Questions connexes