Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.04.13;
Скачать: CL | DM;

Вниз

проблема со скачиванием страниц   Найти похожие ветки 

 
tim   (2008-03-20 22:23) [0]

давно использую этот код для скачки кода страниц.
но вот столкнулся с проблемой что этот способ не скачивает .asp.
если кто знает как решить проблему или знает альтернативные способы прошу откликнуться:)

const
 HTTP_PORT = 80;
 CLRF = #13#10;
 Header = "Content-Type: application/x-www-form-urlencoded" + CLRF;

function DelHttp(URL: string): string;
begin
 if Pos("http://", URL) > 0 then Delete(Url, 1, 7);
 Result := Copy(Url, 1, Pos("/", Url) - 1);
 if Result = "" then Result := URL;
end;

function GetUrl(const URL: string): string;
var
 FSession, FConnect, FRequest: HINTERNET;
 FHost, FScript: string;
 Ansi: PAnsiChar;
 Buff: array[0..1023] of Char;
 BytesRead: Cardinal;
begin
 Result := "";
 // Íåáîëüøîé ïàðñèíã
 // âûòàñêèâàåì èìÿ õîñòà è ïàðàìåòðû îáðàùåíèÿ ê ñêðèïòó
 FHost := DelHttp(Url);
 FScript := Url;
 Delete(FScript, 1, Pos(FHost, FScript) + Length(FHost));

 // Èíèöèàëèçèðóå&# 236; WinInet
 FSession := InternetOpen("DMFR", INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
 if not Assigned(FSession) then Exit;
 try
   // Ïîïûòêà ñîåäèíåíèÿ ñ ñåðâåðîì
   FConnect := InternetConnect(FSession, PChar(FHost), HTTP_PORT, nil,
     "HTTP/1.0", INTERNET_SERVICE_HTTP, 0, 0);
   if not Assigned(FConnect) then Exit;
   try
     // Ïîäãîòàâëèâàå&# 236; çàïðîñ ñòðàíèöû
     Ansi := "text/*";
     FRequest := HttpOpenRequest(FConnect, "GET", PChar(FScript), "HTTP/1.0",
       "", @Ansi, INTERNET_FLAG_RELOAD, 0);
     if not Assigned(FConnect) then Exit;
     try
       // Äîáàâëÿåì çàãîëîâêè
       if not (HttpAddRequestHeaders(FRequest, Header, Length(Header),
         HTTP_ADDREQ_FLAG_REPLACE or
         HTTP_ADDREQ_FLAG_ADD)) then Exit;
       // Îòïðàâëÿåì çàïðîñ
       if not (HttpSendRequest(FRequest, nil, 0, nil, 0)) then Exit;
       // Ïîëó÷àåì îòâåò
       FillChar(Buff, SizeOf(Buff), 0);
       repeat
         Result := Result + Buff;
         FillChar(Buff, SizeOf(Buff), 0);
         InternetReadFile(FRequest, @Buff, SizeOf(Buff), BytesRead);
       until BytesRead = 0;
     finally
       InternetCloseHandle(FRequest);
     end;
   finally
     InternetCloseHandle(FConnect);
   end;
 finally
   InternetCloseHandle(FSession);
 end;
end;


код (C) Александр (Rouse_) Багель


 
palva ©   (2008-03-20 22:49) [1]

Разве сервер может позволить, чтобы клиент скачал код asp?
Это если я правильно понял вопрос.


 
tim   (2008-03-20 23:04) [2]

хм...интересный вопрос, но факт в том что я не могу это сделать, может тогда альтернативу кто подскажет?эх..больно нравится мне эта функция, никогда не подводила,кроме вот...:(


 
palva ©   (2008-03-20 23:46) [3]


> может тогда альтернативу кто подскажет?

Попросить администратора сервера дать доступ по FTP к соответствующей папке. Если не даст - ломать сервер.


 
tim   (2008-03-21 00:30) [4]

эти варианты меня не устраивают!


 
ЦУП ©   (2008-03-21 11:34) [5]

Ты же код PHP не получаешь? С чего ты взял, что ASP увидишь?



Страницы: 1 вся ветка

Текущий архив: 2008.04.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
3-1195575987
ari_9
2007-11-20 19:26
2008.04.13
Длинные (несколько суток) читающие транзакции в FB. Как лучше ?


2-1205935817
AntonUSAnoV
2008-03-19 17:10
2008.04.13
как привести вводимый символ к верхнему регистру


3-1195035804
валет
2007-11-14 13:23
2008.04.13
вопрос по INTERBASE


2-1205447785
Германн
2008-03-14 01:36
2008.04.13
Вопрос про TADODataset.ParamCheck


3-1195499499
Nucer
2007-11-19 22:11
2008.04.13
Работа с ADO