Конференция "Начинающим" » WinInet. Get-запрос в Консольном приложении? Поиск функции! [D7, D2005, XP]
 
  • Stepper (30.03.08 11:06) [0]
    Продолжая свои маленькие шаги в освоении сетевых технологий - столкнулся в небольшой проблемой а именно: Как в консольном приложении выполнить 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]
    Что ты подразумеваешь под "параметры запроса"?
  • Stepper (30.03.08 11:37) [2]

    > 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:40) [3]
    Описание функции, котору ты нашел, красноречиво говорит о том как ее использовать. Брысь паскаль изучать.
  • Stepper (30.03.08 11:47) [4]

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


    Мдэ... обьяснил! :(
  • Palladin © (30.03.08 11:55) [5]
    А чего тут объяснять. Да будет тебе известно ты сетевых технологий вообще еще даже не коснулся. Даже на три км к ним не подошел. Тебе основы прогоаммирования и паскаля изучать нужно. Даже простейшую процедуру, где то скопированную, с прекрасно названными параметрами погять не можешь как вызвать. То есть все твое  "изучение сетевых технологи" - выпрашивание и поиск чужого кода. Свой тоткогда писать будешь?
  • Stepper (30.03.08 11:59) [6]

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


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

    Конференция для начинающих, а также для тех, кому сложно объяснить чего он хочет. Просьба к участникам быть взаимовежливыми, профессионалам отдельная просьба - быть снисходительными.
  • DrPass © (30.03.08 12:21) [7]

    > Stepper   (30.03.08 11:59) [6]


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

    Начинающий - подразумевает "изучающий", а не "тупо копирующий, и желающий чтобы все сразу заработало".
    Вот ему и подсказали, где и что надо сначала изучать.
  • Stepper (30.03.08 12:34) [8]

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


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

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


    И чем же я - Вас так разгневал?
  • DrPass © (30.03.08 15:56) [9]

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

    Да ничем не разгневал. Просто сам подумай... У функции два параметра - URL строки-запроса и переменная, куда будет помещен результат. Если ты не понимаешь, как в них передать данные и получить ответ (а это же азы программирования) - что мы можем тебе помочь? Так же и сказали, надо сначала изучить основы Паскаля.
  • Сергей М. © (30.03.08 16:02) [10]

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


    Брысь !

    В случае с индейскими компонентами - дважды брысь !
    Бо блокирующий режим.
  • Сергей М. © (30.03.08 16:05) [11]

    > Stepper


    Ты ли, чебурек, меня в "грубости" намедни упрекал ?)
    Вот тебя вновь носом ткнули в твое ламерство.. Что, теперь все у тебя грубиянами стали , да ?)
  • Stepper (30.03.08 16:38) [12]

    > Сергей М. ©   (30.03.08 16:05) [11]


    Базар фильтруй! За такие высказывания - тебе самому в жБан пора!
 
Конференция "Начинающим" » WinInet. Get-запрос в Консольном приложении? Поиск функции! [D7, D2005, XP]
Есть новые Нет новых   [134433   +22][b:0][p:0.001]