vendredi 8 mai 2015

The remote server returned an error: (404) Not Found. when doing a HttpWebResponse

I am having an issue with my code as I have to verify the status of some websites in order to notify if they are working or not. I can successfully check this for a number of websites, however for a particular one it is always returning 404 Not Found, even though the site is up and I can view it if I try to open the page on the browser, this is my code:

 public HttpStatusCode GetHeaders(string url, bool proxyNeeded)
    {

        HttpStatusCode result = default(HttpStatusCode);

        var request = (HttpWebRequest)WebRequest.Create(url);
        request.Method = "HEAD";

        request.Credentials = new NetworkCredential(username, password, domain);

        if (proxyNeeded)
        {
            IWebProxy proxy = new WebProxy("127.0.0.1", port_number);
            proxy.Credentials = new NetworkCredential(username, password, domain);
            request.Proxy = proxy;
        }
        try
        {
            var response = (HttpWebResponse) request.GetResponse();
            result = response.StatusCode;
            response.Close();
        }
        catch (WebException e)
        {
            if (e.Status == WebExceptionStatus.ProtocolError)
            {
                WebResponse resp = e.Response;
                using (StreamReader sr = new StreamReader(resp.GetResponseStream()))
                {
                    //TODO: capture the exception!!
                }
            }
        }
        return result;
    }

The exception does not tell me anything different than "Not Found" which really confuses me as I don't know where else to look.The URL failing is: http://cbprod-app/InterAction/home

If I request the page without setting the proxy, comes back with an "401 Not authorized" as it requires the proxy authentication to be displayed, I am running out of ideas, any suggestion about what am I doing wrong?

Thank you very much in advance.

Aucun commentaire:

Enregistrer un commentaire