views:

3785

answers:

4

Hi,

For example, there is this website: www.azet.sk

On the right, there is login and password, I'd like my application to login to this web application and retrieve the data from my own account to C# (.NET) application and work with it. The aim is to keep the "logged in" connection alive and send vars using POST method. Is there any tutorial or easy script with examples to learn this?

+2  A: 

The login part should be relatively easy.

Use System.Net.WebClient and the UploadValues() method to POST the form data. Look at the HTML source to figure out the field values to POST.

Most forms-based auth mechanisms use an HTTP cookie to keep the user logged in. So, after you POST the values, examine the WebClient's ResponseHeaders collection for the 'Set-Cookie:' header.

Store the cookie value for subsequent GETs/POSTs to the website.

You'll probably find that "retrieving the data from your account and working with it" is much more complicated (i.e. screen-scraping, etc).

Here's a link that has some examples:

http://codebetter.com/blogs/brendan.tompkins/archive/2005/05/18/63329.aspx

Brannon
I understand I should do it using Webclient, the problem is in "how" =/ I'll check it up, hopefully I'd find some more detailed manual :)
Skuta
A: 

any other user has anything to add to?

Skuta
A: 

Look into the WebBrowser control. You can navigate anywhere and access the document and its controls programatically.

tsilb
+3  A: 
string username = "your";
string password = "password";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://moje.azet.sk/prihlasenie.phtml?KDE=www.azet.sk%2Findex.phtml%3F");
using (StreamWriter writer = new StreamWriter(request.GetRequestStream(), Encoding.ASCII))
{
    writer.Write("nick=" + username + "&password=" + password);
}

HttpWebResponse response = (HttpWebResponse)request.GetResponse();
//Retrieve your cookie that id's your session
//response.Cookies

using (StreamReader reader = new StreamReader(response.GetResponseStream())
{
    Console.WriteLine(reader.ReadToEnd());
}
bleevo
Hi, I got this as error: System.Net.ProtocolViolationException was unhandled Message="Cannot send a content-body with this verb-type."
Skuta
request .Method = "POST";
bleevo