Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

WinInet. Get-запрос в Консольном приложении? Поиск функции! [D7, D2005, XP]


Stepper ©   (2008-03-30 11:06:00) 

Продолжая свои маленькие шаги в освоении сетевых технологий - столкнулся в небольшой проблемой а именно: Как в консольном приложении выполнить 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;


Stepper   (2008-03-30 16:38:00) [1]

Удалено модератором


Сергей М.   (2008-03-30 16:05:00) [2]

Удалено модератором


Сергей М.   (2008-03-30 16:02:00) [3]


> Get-запрос в Консольном приложении


Брысь !

В случае с индейскими компонентами - дважды брысь !
Бо блокирующий режим.


DrPass   (2008-03-30 15:56:00) [4]


> И чем же я - Вас так разгневал?

Да ничем не разгневал. Просто сам подумай... У функции два параметра - URL строки-запроса и переменная, куда будет помещен результат. Если ты не понимаешь, как в них передать данные и получить ответ (а это же азы программирования) - что мы можем тебе помочь? Так же и сказали, надо сначала изучить основы Паскаля.


Stepper   (2008-03-30 12:34:00) [5]


> DrPass ©   (30.03.08 12:21) [7]


И Вы туда же? Тупо копирующий и оптимизирующий и что из этого? Если смогу оптимизировать для своих нужд - значит енто Плохо? Не кто не просил чтоб мне тут написали программу, был задан на мой взгляд корректный Вопрос а именно:

> но не знаю как передать ей параметры


И чем же я - Вас так разгневал?


DrPass   (2008-03-30 12:21:00) [6]


> Stepper   (30.03.08 11:59) [6]


> Ветку не попутал? Прочти и прими к сведению: Начинающим

Начинающий - подразумевает "изучающий", а не "тупо копирующий, и желающий чтобы все сразу заработало".
Вот ему и подсказали, где и что надо сначала изучать.


Stepper   (2008-03-30 11:59:00) [7]


> Palladin ©   (30.03.08 11:55) [5]


Ветку не попутал? Прочти и прими к сведению: Начинающим

Конференция для начинающих, а также для тех, кому сложно объяснить чего он хочет. Просьба к участникам быть взаимовежливыми, профессионалам отдельная просьба - быть снисходительными.


Palladin   (2008-03-30 11:55:00) [8]

А чего тут объяснять. Да будет тебе известно ты сетевых технологий вообще еще даже не коснулся. Даже на три км к ним не подошел. Тебе основы прогоаммирования и паскаля изучать нужно. Даже простейшую процедуру, где то скопированную, с прекрасно названными параметрами погять не можешь как вызвать. То есть все твое  "изучение сетевых технологи" - выпрашивание и поиск чужого кода. Свой тоткогда писать будешь?


Stepper   (2008-03-30 11:47:00) [9]


> Описание функции, котору ты нашел, красноречиво говорит
> о том как ее использовать. Брысь паскаль изучать.


Мдэ... обьяснил! :(


Palladin   (2008-03-30 11:40:00) [10]

Описание функции, котору ты нашел, красноречиво говорит о том как ее использовать. Брысь паскаль изучать.


Stepper   (2008-03-30 11:37:00) [11]


> 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   (2008-03-30 11:23:00) [12]

Что ты подразумеваешь под "параметры запроса"?


Наверх

Титульная страница Поиск, карта сайта Написать письмо