Problem in using AxWebBrowser component in C# application

I have a C# windows application form which embeds a AxWebBrowser component in it.
I specified the html file URL(a.html) in the navigate method of the component.

In the body onload method of the a.html I have a automatic redirect to some other html file(b.html).

Now I want to capture the text or the html of the redirected html file(b.html) . I cannot specify this file name(b.html) in the navigate method as I have to pass some parameters from the first file so I can specify only the first file name(a.html) in the navigate method of the AxWebBrowser component.

I did try with the following code. I try to use the navigate event of the AxWebBrowser component

  private void axWebBrowser1_NavigateComplete2(object sender, AxSHDocVw.DWebBrowserEvents2_NavigateComplete2Event e)
            {
                  doc = (mshtml.IHTMLDocument2)axWebBrowser1.Document;
                  MessageBox.Show(doc.body.innerText.ToString());

            }

The above method is retrieving only the contents of the a.html. Is there a way to retrieve the contents of the b.html without actually specifying the url of b.html file in the navigate method.

Or is there a way in C# to use the HTTPWebResponse related objects to accomplish the above scenario(Get the contents of the second html file automatically).

Somebody please help in this.
felixmosesjAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

AGBrownCommented:
I don't know about the AxWebBrowser autoredirecting, but you can definitely do this with the HttpWebRequest etc objects. When you say "there is an automatic redirect" is that a 302 response from the browser, or is it a meta http-equiv="REFRESH" tag in the page head? If it is a 302 then the HttpWebRequest method is very simple. Either way I can post a quick example if you want it.

Andy
felixmosesjAuthor Commented:
Andy,
It is not refresh tag and I am not sure about the 302 redirect. The code in the a.html file is this

function postForm()
            {            
                   document.Form1.submit();
            }

<body onload="postForm();" MS_POSITIONING="GridLayout">
            <form id="Form1" name="Form1" method="post" action="https://localhost/b.html" language="javascript" id="Form1">
Some important Statements Here
</form>
</body>

Now I want to get the response of the b.html file. Directly I should not get the response of the b.html. First my a.html file should load and then it gets automatically redirected to b.html and finally I should get the text or html content of b.html file. If possible please post a sample code.
AGBrownCommented:
Ok, well you aren't going to have quite such an easy ride, but you can do it with HttpWebRequest. I'll be able to get code to you, but not until Tuesday next week - I'm on holiday to then. Until I do, the basic premise will be to use the HttpWebRequest to request a.html. You will get the response from a.html and include that in a POST request which you will put into a second HttpWebRequest, this will return b.html.

To do this, I would first install Fiddler (if anyone is counting how many times I mention Fiddler, no I have no conflict-of-interest here ;) I just think it invaluable), and then open a.html and watch it redirect to b.html in a browser. That will allow you to recreated the form POST that is generated from a.html submitting it's form onload. You can then use this with the HttpWebRequest objects.

I just started to hack out the code, and realised it will take me more than 5 minutes. Google gave me these Urls for doing it, they are a bit rough, but they are exactly right:

To get "a.html"
http://www.findarticles.com/p/articles/mi_zddvs/is_200402/ai_ziff119849/pg_2
Then you need to read the values out that you want to post back , put them in a post string, and use:
http://www.netomatix.com/HttpPostData.aspx
to do the post.

We can work though something solid when I'm back next week, but let me know if that helps or not

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
C#

From novice to tech pro — start learning today.