Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 13.03.2010, 17:02   #1
pesi
Подтвердите свой е-майл
 
Регистрация: 05.03.2009
Сообщений: 65
По умолчанию Получить весь код страницы с WinSock

Не удается получить html код страницы, приходит только заголовок страницы. vkontakte.ru взят для примера.
Как получить весь код? Заранее спасибо.

Код:
function HostToIP(host: string):string;
var
  IP:string;
  hostEnt : PHostEnt;
  hostName : array [0..255] of char;
  addr : PChar;
begin
  result:=host;
  try
    strpcopy(hostname, host);
    hostEnt := gethostbyname(hostName);
    if Assigned(hostEnt) and Assigned(hostEnt^.h_addr_list) then
      begin
      addr:=hostEnt^.h_addr_list^;
      IP:=Format('%d.%d.%d.%d', [byte(addr[0]), byte(addr[1]), byte(addr[2]), byte(addr[3])]);
      end;
    result:=ip;
  except
 end;
end;
Код:
var
  I:integer;
  req:string;
  _Socket :TSocket;
  buf: array[0..50000] of char;
  temp:string;
  host:string;
  adr: sockaddr_in;
  t:integer;
  wsdata : TWSAData;
begin
 if WSAStartup(MakeWord(2,0), wsData)<>0 then
  begin
   raise Exception.Create('Îøèáêà èíèöèàëèçàöèè WinSock!');
   Exit;
  end;
 _socket := Socket(PF_INET, SOCK_STREAM, IPPROTO_IP);
 if _socket = INVALID_SOCKET then
 begin
  raise Exception.Create('Íåâîçìîæíî ñîçäàòü ñîêåò!');
  Exit;
 end;
  host:= HostToIP('vkontakte.ru');
  adr.sin_port :=htons(80);
  adr.sin_addr.s_addr :=inet_addr(pchar(host));
  adr.sin_family :=AF_INET;
 if connect(_Socket, adr, sizeof(adr))= SOCKET_ERROR then
  begin
  raise Exception.Create('Îøèáêà!!!');
  CloseSocket(_Socket);
  Exit;
 end;
  req := 'GET / HTTP/1.1'#13#10+
  'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'#13#10+
  'Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3'#13#10+
  'Accept-Encoding: gzip,deflate'#13#10+
  'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; Windows; U; ru; rv:1.8.1.14)'#13#10+
  'Keep-Alive: 300'#13#10+
  'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'#13#10+
  'Host: vkontakte.ru'#13#10+  // www.yandex.ru
  'Connection: Keep-Alive'#13#10#13#10;
  i:= send(_Socket, pointer(req)^, length(req), 0);
 if i=0 then
  begin
  raise Exception.Create('Îøèáêà îòïðàâêè!!!');
  CloseSocket(_Socket);
  Exit;
 end;
  FillChar(Buf, SizeOf(Buf), 0);
  temp:='';
  t := recv(_Socket, buf, sizeof(buf), 0);
 if t=-1 then
  begin
  raise Exception.Create('Îøèáêà ïîëó÷åíèÿ!!!');
  CloseSocket(_Socket);
  Exit;
 end;
// while ( >0) do temp:=temp + buf;
  temp:=buf;
  memo1.Lines.Add(temp);
  closesocket(_Socket);
  wsaCleanup;
end;

Последний раз редактировалось pesi; 13.03.2010 в 17:04.
pesi вне форума
Старый 13.03.2010, 21:14   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

При создании темы или ответа на существующий вопрос вам необходимо соблюдать следующие несложные правила:

0. Воспользоваться поиском по форуму по интересующему вас вопросу. Темы, созданные без выполнения этого пункта и имеющие кучу "близнецов" в "Похожих темах", будут просто молча закрываться, а затем уничтожаться. Так что не стоит удивляться и возмущаться - проще подумать...
mihali4 вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
получить html код страницы aferistz Помощь студентам 3 23.02.2010 12:32
Как получить исходный код открытой страницы в вебраузере beemoto Работа с сетью в Delphi 4 23.02.2010 00:46
Получить HTML код страницы в Delphi Job Работа с сетью в Delphi 3 15.08.2007 11:29
Нужно получить html код страницы NEOkill Работа с сетью в Delphi 2 01.03.2007 16:49