HttpWebRequest & Fiddler

Joined
Jun 24, 2009
Messages
1
Reaction score
0
Hi Guys,

I have been absolutely banging my head against the wall on this problem.

Basically, I am using C# and httpwebrequest to do a HTTPS call to a website to login and get a report.

The steps basically are:

1-3) login, get urls for login and report.

Step 4) once logged in - get report.

The problem I am having relates specifically to Step 4 such that it works - but only when fiddler is running.

When Fiddler isn't running I get a remote timeout exception for Step 4 - FinalStepGetReportData()

The post and some code is below. I have tried putting the website in IE Trusted Sites - but still get the exception.

Would any here be able to help ? I am at a complete loss as how to fix this.

Thanks so much

Code:
public class TrustAllCertificatePolicy : System.Net.ICertificatePolicy 
    { 
        public TrustAllCertificatePolicy() { } 
        public bool CheckValidationResult(ServicePoint sp, 
            X509Certificate cert, 
            WebRequest req, 
            int problem) 
        { 
            return true; 
        } 
    } 
        public void Download() 
        { 
            string cookiesInRawFormat = null; 
            NameValueCollection headers = null; 
            HttpWebResponse response = null; 
            request = (HttpWebRequest)HttpWebRequest.Create 
(Config.ReportUrl); 
            System.Net.ServicePointManager.CertificatePolicy = new 
TrustAllCertificatePolicy(); 
            request.Accept = "image/gif, image/jpeg, image/pjpeg, 
application/x-ms-application, application/vnd.ms-xpsdocument, 
application/xaml+xml, application/x-ms-xbap, application/x-shockwave- 
flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, 
application/msword, */*"; 
            request.KeepAlive = true; 
            request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 
6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 
3.5.30729)"; 
            headers = new NameValueCollection() 
            { 
                { "Accept-Language", "en-us,en;q=0.5" } 
            }; 
            request.Headers.Add(headers); 
            request.CookieContainer = cookies; 
            response = (HttpWebResponse) request.GetResponse(); 
            cookiesInRawFormat = response.Headers["Set-Cookie"]; 
            if (!String.IsNullOrEmpty(cookiesInRawFormat)) 
            { 
                ParseCookiesFromResponseHeader(cookiesInRawFormat); 
            } 
            string location = response.ResponseUri.AbsolutePath; 
            using (response = SignIn(location)) 
            { 
                                using (Stream dataStream = 
FinalStepGetReportData(response, location).GetResponseStream()) 
                { 
                    // Open the stream using a StreamReader for easy 
access. 
                    using (StreamReader reader = new StreamReader 
(dataStream))//, Encoding.UTF8)) 
                    { 
                        // Read the content. 
                        string responseFromServer = reader.ReadToEnd 
(); 
                        // Display the content. 
                        Console.WriteLine(responseFromServer); 
                    } 
                } 
            } 
        } 
        private HttpWebResponse SignIn(string referrerLocation) 
        { 
            request = (HttpWebRequest)HttpWebRequest.Create 
(Config.SignInUrl); 
            request.Accept = "image/gif, image/jpeg, image/pjpeg, 
application/x-ms-application, application/vnd.ms-xpsdocument, 
application/xaml+xml, application/x-ms-xbap, application/x-shockwave- 
flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, 
application/msword, */*"; 
            request.KeepAlive = true; 
            request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 
6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 
3.5.30729)"; 
            request.ContentType = "application/x-www-form-urlencoded"; 
            request.Referer = referrerLocation; 
            System.Net.ServicePointManager.CertificatePolicy = new 
TrustAllCertificatePolicy(); 
            NameValueCollection headers = new NameValueCollection() 
            { 
                { "Accept-Language", "en-us,en;q=0.5" }, 
                { "Cache-Control", "no-cache" } 
            }; 
            request.Method = HttpMethod.POST.ToString(); 
            request.Headers.Add(headers); 
            request.CookieContainer = cookies; 
            request.AllowAutoRedirect = false; 
            PostDataBuilder builder = new PostDataBuilder() { 
                { "action", "sign-in" }, 
                { "disableCorpSignUp", String.Empty }, 
                { "email", Config.UserName }, 
                { "metadata1", "Firefox 3.0.10 Windows" }, 
                { "metadata2", "Mozilla Default Plug-in Java(TM) 
Platform SE 6 U12 QuickTime Plug-in 7.6 Windows Genuine Advantage 
19000912007 Microsoft Office system Shockwave Flash 10012iTunes 
Application Detector Silverlight Plug-In 20401150Windows Presentation 
Foundation RealPlayer(tm) G2 LiveConnect-Enabled Plug-In (32-bit) 
RealPlayer Version Plugin 601269Java(TM) Platform SE 6 U12 16012|| 
1280-1024-971-32-*-*-*" }, 
                { "metadata3", "timezone: -2 execution time: 3" }, 
                { "metadataf1", String.Empty }, 
                { "mode", "1" }, 
                { "pageAction", "****THE HTML PAGE*****" }, 
                { "password", Config.Password }, 
                { "path", "****THE HTML PAGE*****" }, 
                { "protocol", "https" }, 
                { "query", String.Empty }, 
                { "redirectProtocol", String.Empty }, 
                { "useRedirectOnSuccess", "0" }, 
                { "x", "134" }, 
                { "y", "15" } }; 
            byte[] postDataBytes = builder.Build(Encoding.UTF8); 
            request.ContentLength = postDataBytes.Length; 
            using (Stream stream = request.GetRequestStream()) 
            { 
                stream.Write(postDataBytes, 0, postDataBytes.Length); 
            } 
            return (HttpWebResponse)request.GetResponse(); 
        } 
        private HttpWebResponse FinalStepGetReportData(HttpWebResponse 
response, string referer) 
        { 
            request = (HttpWebRequest)HttpWebRequest.Create 
(response.Headers["Location"]); 
            request.Accept = "image/gif, image/jpeg, image/pjpeg, 
application/x-ms-application, application/vnd.ms-xpsdocument, 
application/xaml+xml, application/x-ms-xbap, application/x-shockwave- 
flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, 
application/msword, */*"; 
            request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 
6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 
3.5.30729)"; 
            request.ContentType = "text/xml; encoding='utf-8'"; 
            request.Method = HttpMethod.GET.ToString(); 
            request.Referer = referer; 
            request.KeepAlive = true; 
            request.ProtocolVersion = HttpVersion.Version10; 
            request.Headers.Add(HttpRequestHeader.Cookie, 
response.GetResponseHeader("Set-Cookie")); 
            System.Net.ServicePointManager.CertificatePolicy = new 
TrustAllCertificatePolicy(); 
            NameValueCollection headers = new NameValueCollection() 
            { 
                {"Accept-Language", "en-us,en;q=0.5" }, 
                {"Cache-Control", "no-cache" }, 
                {"Accept-Encoding", "deflate"}, 
            }; 
            request.Headers.Add(headers); 
            return (HttpWebResponse)request.GetResponse(); 
        }
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,820
Messages
2,569,721
Members
45,509
Latest member
Danish324

Latest Threads

Top