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

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

http [Delphi, Windows]


Bast ©   (2007-08-28 13:36:00) 

Здравуствуйте!  Как скачать файл по протоколу http?
Заранее благодарен за ответ


Barloggg   (2008-06-03 17:28:00) [1]

а у меня получилось!
бебебе. :)

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

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

О! момент, а ведь это уже описано BMouradov  [1]
Вот так и делай, там все верно. нормально проходит авторизацию на прокси и идет дальше, и выкачивает что надо.
в общем доволен аки слон. теперь мне нужно искать xmlparser. для rss. где-то тут я его видел недавно...


hornet   (2008-05-27 10:04:00) [2]

Сенкс, посмотрел - кое что сделал.
Но никак не могу понять, как происходит авторизация.
Получил:
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 авторизация работает ?


D[u]fa   (2008-05-23 16:07:00) [3]

ну где то есть точно) вот на тори что-то нашлось http://www.torry.ru/authorsmore.php?id=3977при желании в синапс привернуть мона


hornet   (2008-05-22 20:55:00) [4]

.. в синапсе просто нету авторизации NTLM...
а где нибудь она есть ?


D[u]fa   (2008-05-22 19:34:00) [5]

По-моему в синапсе просто нету авторизации NTLM... хотя может и ошибаюсь


hornet   (2008-05-22 14:19:00) [6]


> надо:
> ProxyUser
> ProxyPass

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


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

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

тот же самы запрос через браузер делаю - все ок.


Danger   (2008-05-22 13:42:00) [7]


> 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 для прокси-сервера. Т.е., например, Ваш компьютер включен в домен и пользователю, из-под которого пытаетесь скачать страничку, запрещен доступ к прокси-серверу.


D[u]fa   (2008-05-22 11:29:00) [8]

надо:
ProxyUser
ProxyPass


hornet   (2008-05-22 08:36:00) [9]

Приветствую, вопрос такой встал:
Делаю запрос:
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   (2008-04-01 15:26:00) [10]

KOLBoss
вот портировал сам, последняя версия. глюки возможны

http://slil.ru/25641609


Compiler   (2008-03-31 22:13:00) [11]

> Как скачать файл по протоколу http?

http://www.kolnmck.ru/files/components/net/kolhttpdownload.7z
Чем плох? И Demo есть


Palladin   (2008-03-31 21:27:00) [12]

Кто здесь?


KOLBoss   (2008-03-31 17:49:00) [13]

Закинь весь синапс а
а, то они воще разные, то дин модуль ненравится то другово нет, то воще прцедуры не те. :(


D[u]fa   (2008-03-31 17:07:00) [14]

возможно кривой порт. попробуй заменить blcksock этим http://slil.ru/25637790


KOLBoss   (2008-03-31 16:56:00) [15]

Забыл добавить, а то поймёте не так.
PL := NewStrList;


KOLLBoss   (2008-03-31 16:53:00) [16]


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

Спасибо понял, ого сколько ктото модулей синапса переделал.
Только у меня сверавно ошибка вылазеет в модуле blcksock
на инструкции inheritedCloseSocket;
уже винду поменял и делпхи переустановил, не помогло :(
что делать????
мож я не те параметры прописал:
procedureTForm1.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;


D[u]fa   (2008-03-31 15:47:00) [17]

это пример с использованием синапса

надо скачать его сначала http://www.kolnmck.ru/files/components/net/kolsyn.zip


KOLBoss   (2008-03-31 13:20:00) [18]

Подскажите ещё, а как правельно типы описать, если они тут нужны?
у меня ошибки недекларировано PHTTPSend, NewHTTPSend,
Incompatible types: 'TMemoryStream'and 'PStream'


BMouradov   (2007-08-29 13:43:00) [19]

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


Наверх

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