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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.07.2008, 17:53   #1
AidarBik
Форумчанин
 
Регистрация: 12.06.2007
Сообщений: 130
По умолчанию CrtSock

Подключил модуль CrtSock, но со своим сайтом не соединяется (aidar.3dn.ru) возвращает страницу как будто такого сайта не существует.
Что не так?
AidarBik вне форума Ответить с цитированием
Старый 31.07.2008, 21:08   #2
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

AidarBik, а где код? Как выглядит ошибка? Как это так - возвращает страницу, если сайта не существует? Уточняйте вопрос, пожалуйста.
B_N вне форума Ответить с цитированием
Старый 01.08.2008, 11:06   #3
AidarBik
Форумчанин
 
Регистрация: 12.06.2007
Сообщений: 130
По умолчанию

Ошибка 404
AidarBik вне форума Ответить с цитированием
Старый 01.08.2008, 11:22   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
AidarBik
Всетки код в студию приведи.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.08.2008, 11:45   #5
AidarBik
Форумчанин
 
Регистрация: 12.06.2007
Сообщений: 130
По умолчанию

Код:
MessageBox(UsersWindow, PChar(HTTPGet('aidar.3dn.ru', '/POP3MailCheck/LastVersion.txt', HTTPHeader)), 'Последняя версия', MB_OK);
AidarBik вне форума Ответить с цитированием
Старый 01.08.2008, 14:40   #6
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

AidarBik, неудачную Вы библиотеку нашли. В общем, суть проблемы в том, что эта либа не формирует поле "Host" в запросе, которое, насколько я помню, виртуальным серверам необходимо даже в HTTP 1.0. Вот так:
Цитата:
HTTP/1.1 404 Not Found
Server: UcoZXSrv/1.4.2
Date: Fri, 01 Aug 2008 10:37:14 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 1352
Connection: close
выглядит ответ на похожий запрос без поля Host, а вот так:
Цитата:
HTTP/1.1 200 OK
Server: UcoZXSrv/1.4.2
Date: Fri, 01 Aug 2008 10:38:46 GMT
Content-Type: text/plain; charset=UTF-8
Content-Length: 3
Last-Modified: Tue, 08 Apr 2008 08:24:22 GMT
Connection: close
Accept-Ranges: bytes
- уже с ним. Делайте выводы. Или перепишите функцию HttpGet в библиотеке, или пользуйтесь чем-нибудь ещё.
B_N вне форума Ответить с цитированием
Старый 01.08.2008, 15:03   #7
AidarBik
Форумчанин
 
Регистрация: 12.06.2007
Сообщений: 130
Печаль

Цитата:
Сообщение от B_N Посмотреть сообщение
Или перепишите функцию HttpGet
А как?
Код:
function HTTPGet(Server, URL: String; var Header: String):string;
var
  Handle: Integer;
  sIn, sOut: TextFile;
  S: String;
begin
  Handle:=CallServer(Server, 80);
  if Handle <= 0 then begin
  Result:='';
  Exit;
  end;
  AssignCrtSock(Handle, sIn, sOut);  
  Writeln(sOut, 'Host: ', Server);
  Writeln(sOut, 'GET ', URL, ' HTTP/1.0');
  Writeln(sOut, 'Accept: */*');
  Writeln(sOut, 'Accept-Language: ru');
  Writeln(sOut, 'User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; FREE)');
  //Writeln(sOut, 'User-Agent: POP3 Mail Check/5.0');
  Writeln(sOut, 'Connection: Keep-Alive');
  if Header <> '' then
  Writeln(sOut, Header);
  Writeln(sOut);
  Header:='';
  Result:='';
  Readln(sIn, S);
  while S <> '' do
  begin
    Header:=Header + S;
    Readln(sIn, S);
  end;    
  while not Eof(sIn) do
  begin
    Readln(sIn, S);
   Result:=Result + S;
  end;
  Disconnect(Handle);
end;
Все равно не работает
AidarBik вне форума Ответить с цитированием
Старый 01.08.2008, 15:26   #8
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Поставьте "Host: .............." второй строчкой. Порядок полей неважен, но команда (GET, POST и т.д.) должна быть на первой строке запроса.
B_N вне форума Ответить с цитированием
Старый 01.08.2008, 15:47   #9
AidarBik
Форумчанин
 
Регистрация: 12.06.2007
Сообщений: 130
По умолчанию

УРА! Огромное спасибо!
AidarBik вне форума Ответить с цитированием
Ответ


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