Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2010, 17:07   #1
nXs
Форумчанин
 
Регистрация: 26.02.2010
Сообщений: 126
По умолчанию Скачивание с авторизацией

Ребята, есть проблема. нужно организовать обновление программы через интернет, сайт на Ucoz, скачивать могут только зарегистрированые пользователи. Вопрос как организовать авторизацию при скачивании на Ucoz(скачивание через http), сам файл скачать не проблема. Может тема где то и раскрыта, но то что я нашел по сути ничего не обьяснило. Не пинайте сильно, лучше ткните ссылкой если что.
nXs вне форума Ответить с цитированием
Старый 06.10.2010, 15:46   #2
nXs
Форумчанин
 
Регистрация: 26.02.2010
Сообщений: 126
По умолчанию

Ну что ж никто не может помочь?
nXs вне форума Ответить с цитированием
Старый 06.10.2010, 16:28   #3
Voody
Форумчанин
 
Регистрация: 22.06.2009
Сообщений: 310
По умолчанию

Если скачивание возможно только зарегистрированным пользователем, то значит сначала авторизуетесь, потом скачиваете.
Тема про авторизацию в разделе на самом верху
Voody вне форума Ответить с цитированием
Старый 07.10.2010, 12:03   #4
nXs
Форумчанин
 
Регистрация: 26.02.2010
Сообщений: 126
По умолчанию

В общем я последовал вашему совету, и написал вот такой код:
Код:
procedure TForm1.DownLoadFile(url, Name, User, Password: string);
var
Params,response:TStringList;
tmp,rnd:string;
begin
Params:=TStringList.Create;
response:=TStringList.Create;

Params.Add('user='+User);
Params.Add('password='+password);
params.Add('rem=1');
params.Add('a=2');
params.Add('ajax=2');
tmp:=Idhttp1.Get(url);
rnd:=copy(tmp,pos('<input type="hidden" name="rnd" value="',tmp)+(length('<input type="hidden" name="rnd" value="')),3);
ShowMessage(rnd);
params.Add('rnd='+rnd); 

idhttp1.Request.AcceptCharSet:='iso-8859-1, utf-8, utf-16, *;q=0.1';
idhttp1.Request.AcceptEncoding:='deflate, gzip, x-gzip, identity, *;q=0';
idhttp1.Request.AcceptLanguage:='	ru-RU,ru;q=0.9,en;q=0.8';
idhttp1.Host:=url;
idhttp1.Request.UserAgent:='Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.6.30 Version/10.62';
idhttp1.Request.Connection:='Keep-Alive, TE';

idhttp1.Get('http://nsoft.do.am');
response.Text:=Idhttp1.Post(url+'index/sub',params);
memo1.Text:=utf8toansi(response.Text);

response.Free;
Params.Free;

end;
Ну и он не авторизирует . Нашел еще что там походу нужно работать с cookie, но как? Cookiemaneger я подключил, а что дальше?
UPD: Посмотрел пакеты что отправляет опера, она куки отправляет, но почему idhttp этого не делает?

Последний раз редактировалось nXs; 07.10.2010 в 15:29.
nXs вне форума Ответить с цитированием
Старый 07.10.2010, 15:54   #5
nXs
Форумчанин
 
Регистрация: 26.02.2010
Сообщений: 126
По умолчанию

В общем проблему решил, если кому интересно, код что выше рабочий, лаг был в том что cookiemanager не принимал куки домен которых начинался с точки. В инете встречал записи что есть версии инди которые работают нормально с такими куками, но моя 10.0.52 не работала. Помогло изменение процедуры в модуле idCookieManager на такую:

Код:
procedure TIdCookieManager.DoAdd(ACookie: TIdCookieRFC2109; ACookieText, AHost: String);
Var
LDomain: String;
begin
ACookie.CookieText := ACookieText;

if Length(ACookie.Domain) = 0 then LDomain := AHost
else LDomain := ACookie.Domain;

if LDomain[1] = '.' then LDomain := Copy(LDomain, 2, Length(LDomain) - 1);
ACookie.Domain := LDomain;

if ACookie.IsValidCookie(AHost) then
begin
if DoOnNewCookie(ACookie) then
begin
FCookieCollection.AddCookie(ACookie);
end
else begin
ACookie.Collection := nil;
ACookie.Free;
end;
end
else begin
ACookie.Free;
end;
end;
Тему можно закрывать.
nXs вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с авторизацией Mathouse Работа с сетью в Delphi 2 31.08.2010 16:03
Помогите с авторизацией RomanStruk Работа с сетью в Delphi 3 04.08.2010 10:23
CСабж с авторизацией KREGI Работа с сетью в Delphi 0 12.06.2010 20:18
проблема с авторизацией sergei2009 PHP 1 19.04.2010 17:47
Помогите с авторизацией Jer Помощь студентам 2 19.12.2009 03:09