-
Продолжая свои маленькие шаги в освоении сетевых технологий - столкнулся в небольшой проблемой а именно: Как в консольном приложении выполнить Get-запрос к некому Юрл и сохранить результат в TFileStream или подобной переменной! Решил заюзать WinInet и нашел одну функцию, но не знаю как передать ей параметры запроса?
Uses WinInet;
function GetHttpString(URL: AnsiString; var OutData: AnsiString): Boolean;
var
hInet, hFile: HINTERNET;
DataBuf: Pointer;
TmpStr: AnsiString;
BytesReaded: Cardinal;
const
BufSize = 4096;
begin
result := false;
hInet := InternetOpen(nil,
INTERNET_OPEN_TYPE_PRECONFIG,
nil,
nil,
0);
if hInet = nil then Exit;
hFile := InternetOpenUrl(hInet,
PChar(URL),
nil,
0,
INTERNET_FLAG_EXISTING_CONNECT or INTERNET_FLAG_NO_CACHE_WRITE or INTERNET_FLAG_RELOAD,
0);
if hFile = nil then
begin
InternetCloseHandle(hInet);
Exit;
end;
OutData := '';
GetMem(DataBuf, BufSize);
BytesReaded := 0;
repeat
SetString(TmpStr, PChar(DataBuf), BytesReaded);
OutData := OutData + TmpStr;
BytesReaded := 0;
if not InternetReadFile(hFile, DataBuf, BufSize, BytesReaded) then Break;
until BytesReaded = 0;
FreeMem(DataBuf, BufSize);
InternetCloseHandle(hFile);
InternetCloseHandle(hInet);
result := true;
end;
-
Что ты подразумеваешь под "параметры запроса"?
-
> Palladin © (30.03.08 11:23) [1] > > Что ты подразумеваешь под "параметры запроса"?
Ну как в Инди IdHTTP:
...
var
s: string;
fs: TFileStream;
begin
s := IdHTTP.Get('http://www.url/'); fs := TFileStream.Create('Get.txt', fmCreate or fmOpenWrite);
fs.Write(Pointer(s)^, Length(s));
fs.Free;
end;
...
Реализовать подобное, но для WinInet!
-
Описание функции, котору ты нашел, красноречиво говорит о том как ее использовать. Брысь паскаль изучать.
-
> Описание функции, котору ты нашел, красноречиво говорит > о том как ее использовать. Брысь паскаль изучать.
Мдэ... обьяснил! :(
-
А чего тут объяснять. Да будет тебе известно ты сетевых технологий вообще еще даже не коснулся. Даже на три км к ним не подошел. Тебе основы прогоаммирования и паскаля изучать нужно. Даже простейшую процедуру, где то скопированную, с прекрасно названными параметрами погять не можешь как вызвать. То есть все твое "изучение сетевых технологи" - выпрашивание и поиск чужого кода. Свой тоткогда писать будешь?
-
> Palladin © (30.03.08 11:55) [5]
Ветку не попутал? Прочти и прими к сведению: Начинающим
Конференция для начинающих, а также для тех, кому сложно объяснить чего он хочет. Просьба к участникам быть взаимовежливыми, профессионалам отдельная просьба - быть снисходительными.
-
> Stepper (30.03.08 11:59) [6]
> Ветку не попутал? Прочти и прими к сведению: Начинающим
Начинающий - подразумевает "изучающий", а не "тупо копирующий, и желающий чтобы все сразу заработало". Вот ему и подсказали, где и что надо сначала изучать.
-
> DrPass © (30.03.08 12:21) [7]
И Вы туда же? Тупо копирующий и оптимизирующий и что из этого? Если смогу оптимизировать для своих нужд - значит енто Плохо? Не кто не просил чтоб мне тут написали программу, был задан на мой взгляд корректный Вопрос а именно:
> но не знаю как передать ей параметры
И чем же я - Вас так разгневал?
-
> И чем же я - Вас так разгневал?
Да ничем не разгневал. Просто сам подумай... У функции два параметра - URL строки-запроса и переменная, куда будет помещен результат. Если ты не понимаешь, как в них передать данные и получить ответ (а это же азы программирования) - что мы можем тебе помочь? Так же и сказали, надо сначала изучить основы Паскаля.
-
> Get-запрос в Консольном приложении
Брысь !
В случае с индейскими компонентами - дважды брысь ! Бо блокирующий режим.
-
> Stepper
Ты ли, чебурек, меня в "грубости" намедни упрекал ?) Вот тебя вновь носом ткнули в твое ламерство.. Что, теперь все у тебя грубиянами стали , да ?)
-
> Сергей М. © (30.03.08 16:05) [11]
Базар фильтруй! За такие высказывания - тебе самому в жБан пора!
|