Добрый день. Пытаюсь написать первую программу на C#. Требуется: зайти на сайт trustlink.ru, залогиниться, спарсить текущий баланс.
Нагуглил исходник парсера - с ним вроде проблем нет. Далее нашел статью по авторизации:
http://www.rsdn.ru/article/inet/httpweb.xml
Добавил кода, но все равно не работает.
Помогите пожалуйста. Код приложил, user[login]=
yourlogin&user[password]=
yourpass в выделенном должны быть логин/пароль.
Код:
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 System.IO;
using System.Text.RegularExpressions;
using System.Net;
namespace My1
{
public partial class Form1 : Form
{
private int i = 10;
public Form1()
{
InitializeComponent();
}
// Раньше. Парс + таймер
private string GetEasylabViews()
{
string url = "http://trustlink.ru";
string html = string.Empty;
string pattern = "Вывести средства из системы";
//Заходим на главную, чтобы узнать сессию
HttpWebResponse result = null;
byte[] SomeBytes = null;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://trustlink.ru");
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31";
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
request.Headers.Add("Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4");
request.Headers.Add("Accept-Charset", "windows-1251,utf-8;q=0.7,*;q=0.3");
request.Headers.Add("Accept-Encoding", "gzip,deflate,sdch");
request.ContentType = "application/x-www-form-urlencoded";
result = (HttpWebResponse)request.GetResponse();
string sCookies = request.Headers["Set-Cookie"];
// Логинимся
request = (HttpWebRequest)WebRequest.Create("http://trustlink.ru/user/auth");
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31";
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
request.Headers.Add("Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4");
request.Headers.Add("Accept-Charset", "windows-1251,utf-8;q=0.7,*;q=0.3");
request.Headers.Add("Accept-Encoding", "gzip,deflate,sdch");
request.ContentType = "application/x-www-form-urlencoded";
if (!String.IsNullOrEmpty(sCookies)) request.Headers.Add(HttpRequestHeader.Cookie, sCookies);
request.AllowAutoRedirect = false;
request.Method = "POST";
string FormParams = "user[login]=yourlogin&user[password]=yourpass";
SomeBytes = Encoding.UTF8.GetBytes(FormParams);
request.ContentLength = SomeBytes.Length;
Stream newStream = request.GetRequestStream();
newStream.Write(SomeBytes, 0, SomeBytes.Length);
newStream.Close();
result = (HttpWebResponse)request.GetResponse();
// Идем на страницу статистики
// получаем cookie
sCookies = "";
if (!String.IsNullOrEmpty(request.Headers["Set-Cookie"]))
{
sCookies = request.Headers["Set-Cookie"];
}
request = (HttpWebRequest)WebRequest.Create("http://www.trustlink.ru/sites/list");
request.Referer = "http://www.trustlink.ru";
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31";
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
request.Headers.Add("Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4");
request.Headers.Add("Accept-Charset", "windows-1251,utf-8;q=0.7,*;q=0.3");
request.Headers.Add("Accept-Encoding", "gzip,deflate,sdch");
request.ContentType = "application/x-www-form-urlencoded";
if (!String.IsNullOrEmpty(sCookies))
{
request.Headers.Add(HttpRequestHeader.Cookie, sCookies);
}
result = (HttpWebResponse)request.GetResponse();
StreamReader sr = new StreamReader(result.GetResponseStream(), Encoding.GetEncoding(1251));
html = sr.ReadToEnd();
Match res;
res = Regex.Match(html, pattern);
return res.Groups[1].ToString();
}
}
}