Avoir d'Erreur “Le serveur distant a retourné une erreur: (403) Interdit” lors de la capture d'écran à l'aide de HttpWebRequest.GetResponse()

Nous disposons d'un outil qui vérifie si une URL est une URL. Si une url est de vivre une autre partie de notre logiciel peut écran de la ferraille le contenu.

C'est mon code pour vérifier si une url est vivre

    public static bool IsLiveUrl(string url)
    {
        HttpWebRequest webRequest = WebRequest.Create(url) as HttpWebRequest;
        webRequest.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.6) Gecko/20060728 Firefox/1.5";
        webRequest.CookieContainer = new CookieContainer();
        WebResponse webResponse;
        try
        {
            webResponse = webRequest.GetResponse();
        }
        catch (WebException e)
        {
            return false;
        }
        catch (Exception ex)
        {

            return false;
        }
        return true;
    }

Ce code fonctionne parfaitement, mais pour un site hébergé sur un serveur apache, je suis une exception web avec le message suivant. "Le serveur distant a retourné une erreur: (403) Interdit"
Sur une inspection plus poussée, j'ai trouvé les informations suivantes dans le WebException objet

Statut="ProtocolError"
StatusDescription="Mauvais Comportement"

C'est l'entête de la requête "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.6) Gecko/20060728 Firefox/1.5
Hôte: scenicspares.co.royaume-uni
Connection: Keep-Alive"

C'est l'en-tête de réponse "Keep-Alive: timeout=4, max=512
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html
Date: Thu, 13 Jan 2011 10:29:36 GMT
Serveur: Apache"

J'ai extrait ces en-têtes à l'aide d'une montre dans vs2008. Le cadre de travail en cours d'utilisation est de 3,5.

OriginalL'auteur Syed Salman Akbar | 2011-01-13