PDA

Просмотр полной версии : проблемы с получением html в C#


no_xxx
21.09.2009, 20:15
IPHostEntry hostEntry = Dns.GetHostEntry("сайт");
IPAddress address = hostEntry.AddressList[0];
IPEndPoint ipEpoint = new IPEndPoint(address, 80);

Socket socket = new Socket(ipEpoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
socket.Connect(ipEpoint);

string request ="GET /search.php?[name]=1HTTP/1.1\r\n" +
"Host: vkontakte.ru\r\n" +
"User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6 (.NET CLR 3.5.30729)\r\n" +
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n" +
"Accept-Language: ru,en-us;q=0.7,en;q=0.3\r\n" +
"Accept-Encoding: gzip,deflate\r\n" +
"Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n" +
"Keep-Alive: 300\r\n" +
"Connection: keep-alive\r\n" +
"Cookie: cockiid=2сс22e831ab2984a88e341a33сс2215d2сcd8 6cbbb81e59e900d1\r\n\r\n";

Byte[] bytesSent = Encoding.ASCII.GetBytes(request);
socket.Send(bytesSent, bytesSent.Length, 0);


Byte[] bytesReceived = new Byte[2048];
int bytes = 0;
bytes = socket.Receive(bytesReceived, bytesReceived.Length, 0);
string page = Encoding.ASCII.GetString(bytesReceived, 0, bytes);



в итоге в page заносится только заголовок пакета... а мне нужна страница

смотрю снифером, все в порядке страница приходит...

помогите в C# дуб-дубом


и еще вопросик, каким образом проще выдернуть из страницы все значения по шаблону??

W!z@rD
21.09.2009, 21:29
извращенец, в C# есть HttpWeb Request/Response

private string GetResponse(string url)
{
var request = (HttpWebRequest) WebRequest.Create(url);
try
{
request.Method = "GET";
request.AllowAutoRedirect = false;
using (var reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(1251)))
{
return reader.ReadToEnd();
}
}
catch
{
return null;
}
}

Kaimi
21.09.2009, 21:33
/search.php?[name]=1HTTP/1.1\r\n

Меня смущает отсутствие пробела...

M_script_
24.09.2009, 18:57
Меня смущает отсутствие пробела...
Видимо сервер ВК это тоже смущает =)

CrazyXoLoD
25.09.2009, 18:12
это всех смущает!)

Chrome~
25.09.2009, 19:02
в итоге в page заносится только заголовок пакета... а мне нужна страница
Было бы очень хорошо, если ты с самого начала выложил этот заголовок. Тогда проблема решилась бы еще быстрее.

Neogan
27.09.2009, 18:35
извращенец, в C# есть HttpWeb Request/Response

private string GetResponse(string url)
{
var request = (HttpWebRequest) WebRequest.Create(url);
try
{
request.Method = "GET";
request.AllowAutoRedirect = false;
using (var reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(1251)))
{
return reader.ReadToEnd();
}
}
catch
{
return null;
}
}
=) ну чтож поделать сам .atk с 0 начинал и счас до чего дошел