Большое все спасибо за ответы!
Действительно, я неточно описал задачу.
Вот то что я делаю обычно вручную: отрываю страницу в браузере, ввожу пороль, на следующей странице нажимаю на ссылку. Эта ссылк отрывает безопасный канал для приложений (что-то навроде VPN), этот канал закрывается самостоятельно каждые 6 часов, мне необходимо его поддерживать открытым. Я и хотел это сделать через C#.
Я почитаю насчет WebClient, но не знаю смогу ли я разобраться с Cookie.
А, что на JavaScript это намного проще?
Я подобные вещи писал на с помощью СUrl, эта библиотека имитирует любой браузер. У меня есть наработки для работы с одни сайтом, если интересует могу скинуть
-- 19.12.2011, 20:49 --Нарыл исходник
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SeasideResearch.LibCurlNet;
namespace TravianBot
{
public partial class Main : Form
{
private static Easy easy;
private static string text;
public Main()
{
InitializeComponent();
text = string.Empty;
Curl.GlobalInit((int)CURLinitFlag.CURL_GLOBAL_ALL);
}
private void button1_Click(object sender, EventArgs e)
{
const string url = "http://s1.travian.com.ua/dorf1.php";
const string userAgent = "Mozilla/5.0 (Windows NT 6.1; rv:2.0) Gecko/20100101 Firefox/4.0";
string content = "name=%D0%A3%D0%BB%D1%8C%D1%84%D1%81%D0%B0%D1%80%D0%BA&password=d#33575s#110575&s1.x=69&s1.y=5&w=1280%3A1024&login=1302207431";
easy = new Easy();
Easy.WriteFunction wf = OnWriteData;
easy.SetOpt(CURLoption.CURLOPT_URL, url);
easy.SetOpt(CURLoption.CURLOPT_TIMEOUT, "60");
easy.SetOpt(CURLoption.CURLOPT_WRITEFUNCTION, wf);
easy.SetOpt(CURLoption.CURLOPT_USERAGENT, userAgent);
easy.SetOpt(CURLoption.CURLOPT_FOLLOWLOCATION, true);
easy.SetOpt(CURLoption.CURLOPT_POST, true);
easy.SetOpt(CURLoption.CURLOPT_POSTFIELDS, content);
easy.SetOpt(CURLoption.CURLOPT_SSL_VERIFYHOST, 1);
easy.SetOpt(CURLoption.CURLOPT_SSL_VERIFYPEER, 0);
easy.Perform();
easy.Cleanup();
textBox1.Text = text;
string _content = "name=Ульфсарк&password= &s1.x=69&s1.y=5&w=1280%3A1024&login=1302207431";
byte[] Bytes = Encoding.UTF8.GetBytes(_content);
string Headers = "Content-Type: application/x-www-form-urlencoded";
webBrowser1.Navigate("http://s1.travian.com.ua/dorf1.php", "", Bytes, Headers);
}
public static Int32 OnWriteData(Byte[] buf, Int32 size, Int32 nmemb, Object extraData)
{
text += System.Text.Encoding.UTF8.GetString(buf);
return size * nmemb;
}
}
}