-
Здравуствуйте! Как скачать файл по протоколу http? Заранее благодарен за ответ
-
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
-
Подскажите ещё, а как правельно типы описать, если они тут нужны? у меня ошибки недекларировано PHTTPSend, NewHTTPSend, Incompatible types: 'TMemoryStream' and 'PStream'
-
-
> надо скачать его сначала
Спасибо понял, ого сколько ктото модулей синапса переделал. Только у меня сверавно ошибка вылазеет в модуле 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;
-
Забыл добавить, а то поймёте не так. PL := NewStrList;
-
-
Закинь весь синапс а а, то они воще разные, то дин модуль ненравится то другово нет, то воще прцедуры не те. :(
-
Кто здесь?
-
-
-
Приветствую, вопрос такой встал: Делаю запрос: 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
-
надо: ProxyUser ProxyPass
-
> 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 для прокси-сервера. Т.е., например, Ваш компьютер включен в домен и пользователю, из-под которого пытаетесь скачать страничку, запрещен доступ к прокси-серверу.
-
> надо: > ProxyUser > ProxyPass
Это да, опечатался - но результат такой же :(
> Не прошла аутентификацию NTLM для прокси-сервера. Т.е., > например, Ваш компьютер включен в домен и пользователю, > из-под которого пытаетесь скачать страничку, запрещен доступ > к прокси-серверу.
Не прошла это понятно, а почему, все данные (прокси, порт, юзер, пароль) правильно ввожу!
тот же самы запрос через браузер делаю - все ок.
-
По-моему в синапсе просто нету авторизации NTLM... хотя может и ошибаюсь
-
.. в синапсе просто нету авторизации NTLM... а где нибудь она есть ?
-
-
Сенкс, посмотрел - кое что сделал. Но никак не могу понять, как происходит авторизация. Получил: 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 авторизация работает ?
-
а у меня получилось! бебебе. :)
захотелось мне быть "как все". а конкретно читать RSS. в своей программке. kolhttp не понял. пример про httpdownload [9] не прошел авторизацию
зато неожиданно сработал пример от duffa, который с синапсом и в котором очень много файлоффф. я аж ужаснулся. короче сделал так: httpsend.pas
О! момент, а ведь это уже описано BMouradov [1] Вот так и делай, там все верно. нормально проходит авторизацию на прокси и идет дальше, и выкачивает что надо. в общем доволен аки слон. теперь мне нужно искать xmlparser. для rss. где-то тут я его видел недавно...
|