Программный вход на сайт - PullRequest
1 голос
/ 28 июля 2010

Как можно войти на сайт программным способом?

Я просто хочу проверить, правильно ли указаны имя пользователя и пароль для сайта.

Спасибо.

1 Ответ

11 голосов
/ 28 июля 2010

Самый простой способ сделать это из .NET - это Watin . Вы бы сделали что-то вроде:

 using (var browser = new IE("http://mysite.com"))
 {
  browser.TextField(Find.ByName("email")).TypeText("my@email.com");
  browser.TextField(Find.ByName("password")).TypeText("password");
  browser.Button(Find.ByName("login")).Click();

  if (browser.ContainsText("Welcome my@email.com!"))
  {
    // Success
  } 
 }

Чтобы сделать это с помощью HttpWebRequest, вам необходимо:

var req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
req.ContentLength = postContent.Length;
req.ContentType = "application/x-www-form-urlencoded";

using (var streamWriter = new StreamWriter(req.GetRequestStream()))
{
    streamWriter.Write(postContent);
}

using (var res = (HttpWebResponse)req.GetResponse())
{
  _status = res.StatusCode;
  using (var streamReader = new StreamReader(res.GetResponseStream()))
  {
    response = streamReader.ReadToEnd();
  }
}       

Чтобы добавить третий способ, вы также можете использовать WebClient:

var nvc = new NameValueCollection();
nvc.Add("email", "my@email.com");
nvc.Add("password", "password");

var wc = new WebClient();
byte[] responseArray = wc.UploadValues("http://mysite.com",nvc);
string responseText = Encoding.ASCII.GetString(responseArray));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...