Poniżej podaję kod do przykładu ze strony allegro:
{
CookieContainer cookies = new CookieContainer();
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://allegro.pl/daskie-pheromone-essence-5-ml-skoncentrowane-fero-i1953089611.html");
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1";
request.Method = "GET";
request.CookieContainer = cookies;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
response.Close();
// opcjonalne dodanie ciasteczka:
Cookie adult = new Cookie();
adult.Name = "exp_content_cookie";
adult.Value = "42";
adult.Domain = ".allegro.pl";
adult.Path = "/";
adult.Expires = DateTime.Parse("2012-09-18 00:28:54");
cookies.Add(adult);
//
//POST
request = (HttpWebRequest)HttpWebRequest.Create("http://allegro.pl/daskie-pheromone-essence-5-ml-skoncentrowane-fero-i1953089611.html");
request.Method = "POST";
request.CookieContainer = cookies;
string loginData = "go_to=ShowItem2.php%3Fitem%3D1953089611&explicit_code=42&accept=Jestem+pe%C5%82noletni+i+chc%C4%99+przej%C5%9B%C4%87+dalej";
request.ContentType = "application/x-www-form-urlencoded";
byte[] loginDataBytes = Encoding.ASCII.GetBytes(loginData);
Stream postData = request.GetRequestStream();
postData.Write(loginDataBytes, 0, loginDataBytes.Length);
postData.Close();
response = (HttpWebResponse)request.GetResponse();
Stream stream = response.GetResponseStream();
//wczytanie źródła do htmldocument z htmlagilitypack
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.Load(stream, Encoding.UTF8);
//wczytanie źródła do stringa
const int bufSizeMax = 65536;
const int bufSizeMin = 8192;
StringBuilder sb;
int length = (int)response.ContentLength;
int bufSize = bufSizeMin;
if (length > bufSize)
bufSize = length > bufSizeMax ? bufSizeMax : length;
byte[] buf = new byte[bufSize];
sb = new StringBuilder(bufSize);
while ((length = stream.Read(buf, 0, buf.Length)) != 0)
sb.Append(Encoding.UTF8.GetString(buf, 0, length));
}
W przykładzie umieściłem wczytanie streamu do htmldocument i do stringa jakby ktoś nie miał biblioteki HtmlAgilityPack to usuńcie zaznaczone komentarzem 2 linijki wczytujące do doc. Dodam jeszcze że dodanie ciasteczka do kontenera nic nie zmienia.
Jakieś korekty, sugestie?propozycje innych rozwiązań?