Конференция "KOL" » http [Delphi, Windows]
 
  • Bast (28.08.07 13:36) [0]
    Здравуствуйте!  Как скачать файл по протоколу http?
    Заранее благодарен за ответ
  • BMouradov (29.08.07 13:43) [1]
    uses HTTPSend;

    function HttpGetTextProxy(const URL: string; const Response: PStrList; ProxyHost, ProxyPort, ProxyUser, ProxyPass: string): Boolean;
    var
       HTTP: PHTTPSend;
    begin
       HTTP := NewHTTPSend;
       try
           HTTP.ProxyHost := ProxyHost;
           HTTP.ProxyPort := ProxyPort;
           HTTP.ProxyUser := ProxyUser;
           HTTP.ProxyPass := ProxyPass;
           Result := HTTP.HTTPMethod('GET', URL);
           Response.LoadFromStream(HTTP.Document,false);
       finally
           HTTP.Free;
       end;
    end; //HttpGetTextProxy
  • KOLBoss © (31.03.08 13:20) [2]
    Подскажите ещё, а как правельно типы описать, если они тут нужны?
    у меня ошибки недекларировано PHTTPSend, NewHTTPSend,
    Incompatible types: 'TMemoryStream' and 'PStream'
  • D[u]fa (31.03.08 15:47) [3]
    это пример с использованием синапса

    надо скачать его сначала http://www.kolnmck.ru/files/components/net/kolsyn.zip
  • KOLLBoss (31.03.08 16:53) [4]

    > надо скачать его сначала

    Спасибо понял, ого сколько ктото модулей синапса переделал.
    Только у меня сверавно ошибка вылазеет в модуле blcksock
    на инструкции inherited CloseSocket;
    уже винду поменял и делпхи переустановил, не помогло :(
    что делать????
    мож я не те параметры прописал:
    procedure TForm1.Button1Click(Sender: PObj);
    var
    PL : PStrList;
    begin
    HttpGetTextProxy('http://10.10.10.10/user/default.tisp',PL,'10.10.10.10','80','','');
    Memo1.Text := PL.Text;
    PL.Free;
    end;

  • KOLBoss (31.03.08 16:56) [5]
    Забыл добавить, а то поймёте не так.
    PL := NewStrList;

  • D[u]fa (31.03.08 17:07) [6]
    возможно кривой порт. попробуй заменить blcksock этим http://slil.ru/25637790
  • KOLBoss (31.03.08 17:49) [7]
    Закинь весь синапс а
    а, то они воще разные, то дин модуль ненравится то другово нет, то воще прцедуры не те. :(
  • Palladin © (31.03.08 21:27) [8]
    Кто здесь?
  • Compiler © (31.03.08 22:13) [9]
    > Как скачать файл по протоколу http?

    http://www.kolnmck.ru/files/components/net/kolhttpdownload.7z
    Чем плох? И Demo есть
  • D[u]fa (01.04.08 15:26) [10]
    KOLBoss
    вот портировал сам, последняя версия. глюки возможны

    http://slil.ru/25641609
  • hornet (22.05.08 08:36) [11]
    Приветствую, вопрос такой встал:
    Делаю запрос:
    uses
     HTTPSend;

    begin
     HTTP := THTTPSend.Create;
     try
       HTTP.ProxyHost := '172.17.5.5';
       HTTP.ProxyPort := '3128';
       HTTP.UserName:='user';
       HTTP.Password:='pass';
       HTTP.HTTPMethod('GET', 'http://test.ru/testing.htm');
       Memo1.Lines.Assign(HTTP.Headers);
       SetLength(s,HTTP.Document.Size);
       HTTP.Document.Read(s[1],HTTP.Document.Size);
       Memo2.Lines.Add(s);
       Memo2.Lines.add(inttostr(Http.Resultcode));
       Memo2.Lines.add(Http.ResultString);
     finally
       HTTP.Free;
    end;
    end;


    в ответ получаю:
    HTTP/1.0 407 Proxy Authentication Required
    Server: squid/2.5.STABLE14
    Mime-Version: 1.0
    Date: Thu, 22 May 2008 04:24:14 GMT
    Content-Type: text/html
    Content-Length: 1291
    Expires: Thu, 22 May 2008 04:24:14 GMT
    X-Squid-Error: ERR_CACHE_ACCESS_DENIED 0
    Proxy-Authenticate: NTLM
    Proxy-Authenticate: Basic realm="Squin proxy-caching web server"
    X-Cache: MISS from testserver...
    Proxy-Connection: close


    Похоже не может пройти авторизацию.
    Может кто работал через такой прокси ?

    D7, XP, kolsyn
  • D[u]fa (22.05.08 11:29) [12]
    надо:
    ProxyUser
    ProxyPass
  • Danger © (22.05.08 13:42) [13]

    > Server: squid/2.5.STABLE14
    > Mime-Version: 1.0
    > Date: Thu, 22 May 2008 04:24:14 GMT
    > Content-Type: text/html
    > Content-Length: 1291
    > Expires: Thu, 22 May 2008 04:24:14 GMT
    > X-Squid-Error: ERR_CACHE_ACCESS_DENIED 0
    > Proxy-Authenticate: NTLM


    Не прошла аутентификацию NTLM для прокси-сервера. Т.е., например, Ваш компьютер включен в домен и пользователю, из-под которого пытаетесь скачать страничку, запрещен доступ к прокси-серверу.
  • hornet (22.05.08 14:19) [14]

    > надо:
    > ProxyUser
    > ProxyPass

    Это да, опечатался - но результат такой же :(


    > Не прошла аутентификацию NTLM для прокси-сервера. Т.е.,
    > например, Ваш компьютер включен в домен и пользователю,
    > из-под которого пытаетесь скачать страничку, запрещен доступ
    > к прокси-серверу.

    Не прошла это понятно, а почему, все данные (прокси, порт, юзер, пароль) правильно ввожу!

    тот же самы запрос через браузер делаю - все ок.
  • D[u]fa (22.05.08 19:34) [15]
    По-моему в синапсе просто нету авторизации NTLM... хотя может и ошибаюсь
  • hornet (22.05.08 20:55) [16]
    .. в синапсе просто нету авторизации NTLM...


    а где нибудь она есть ?
  • D[u]fa (23.05.08 16:07) [17]
    ну где то есть точно) вот на тори что-то нашлось http://www.torry.ru/authorsmore.php?id=3977 при желании в синапс привернуть мона
  • hornet (27.05.08 10:04) [18]
    Сенкс, посмотрел - кое что сделал.
    Но никак не могу понять, как происходит авторизация.
    Получил:
    var
     NTLM:TNTLM;
     r,r2: string;
     msg2:TNTLM_Message2;
     Buff: array [1..255] of byte;
    begin
     r:=NTLM.GetMensaje1('192.168.4.12','domen');
     msg2:=NTLM.GetMensaje2(r);
     Move(msg2, Buff, SizeOf(msg2));
     r2:=NTLM.GetMensaje3('domen','192.168.4.12','user','pass',Buff);
    end;


    что дальше ...?
    может кто подкинет документацию на русском, как NTLM авторизация работает ?
  • Barloggg (03.06.08 17:28) [19]
    а у меня получилось!
    бебебе. :)

    захотелось мне быть "как все". а конкретно читать RSS. в своей программке.
    kolhttp не понял.
    пример про httpdownload [9] не прошел авторизацию

    зато неожиданно сработал пример от duffa, который с синапсом и в котором очень много файлоффф.
    я аж ужаснулся.
    короче сделал так:
    httpsend.pas

    О! момент, а ведь это уже описано BMouradov  [1]
    Вот так и делай, там все верно. нормально проходит авторизацию на прокси и идет дальше, и выкачивает что надо.
    в общем доволен аки слон. теперь мне нужно искать xmlparser. для rss. где-то тут я его видел недавно...
 
Конференция "KOL" » http [Delphi, Windows]
Есть новые Нет новых   [134431   +15][b:0][p:0.002]