Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

18.01.2009, 22:44
|
|
Участник форума
Регистрация: 06.03.2008
Сообщений: 105
Провел на форуме: 253346
Репутация:
146
|
|
IdHTTP в delphi
все привет, помогите сделать коннект к сайту по IdHTTP.
у меня не получается
делаю так:
var
i:integer;
s:string;
begin
lData := TStringList.Create;
http := TIdHTTP.Create(nil);
HTTP.HandleRedirects := True;
HTTP.ProtocolVersion := pv1_0;
HTTP.ProtocolVersion := pv1_0;
HTTP.Request.BasicAuthentication := True;
lData.Clear;
try
for i:=0 to Memo2.Lines.Count - 1 do
begin
lData.Add(memo2.Lines.Strings[i]);
end;
try
HTTP.Post('http://vkontakte.ru', lData);//
s := http.Get('http://vkontakte.ru');
except
end;
memo1.Lines.Add(s);
finally
end;
ldata.free;
end;
в мемо2:
email=123123@123.ru
pass=123123
submit=.
|
|
|

18.01.2009, 22:52
|
|
Участник форума
Регистрация: 06.06.2008
Сообщений: 171
Провел на форуме: 1085601
Репутация:
110
|
|
мне кажется надо куки включить, если не сработает, пробуй реферер добавить
думаю еще, хорошо получать результат пост запроса, авось там ответ
и по поводу оптимизации, не удержался:
Код:
for i:=0 to Memo2.Lines.Count - 1 do
begin
lData.Add(memo2.Lines.Strings[i]);
end;
можно заменить на
|
|
|

18.01.2009, 23:03
|
|
Участник форума
Регистрация: 06.03.2008
Сообщений: 105
Провел на форуме: 253346
Репутация:
146
|
|
спасибо за ответ!
вот это
Код:
HTTP.Post('http://vkontakte.ru', lData);//
s := http.Get('http://vkontakte.ru');
заменить на
Код:
//HTTP.Post('http://vkontakte.ru', lData);//
s := http.post('http://vkontakte.ru',ldata);
верно?
|
|
|

18.01.2009, 23:04
|
|
Участник форума
Регистрация: 06.03.2008
Сообщений: 105
Провел на форуме: 253346
Репутация:
146
|
|
еще заметил что символ @ меняется на %40 при входе из браузера, а если из дельфи то не меняется, попробовал написать %40 вместо @, в результате получил %2540
|
|
|

19.01.2009, 21:39
|
|
Участник форума
Регистрация: 06.03.2008
Сообщений: 105
Провел на форуме: 253346
Репутация:
146
|
|
Мужики, по-любому кто-то с этим сталкивался, откликнитесь.
|
|
|

19.01.2009, 21:44
|
|
Участник форума
Регистрация: 06.06.2008
Сообщений: 171
Провел на форуме: 1085601
Репутация:
110
|
|
мне кажется обязательно нужно включить кукисы
ставь на форму IdCookieManager [Indy Misc]
и в свойстве CookieManager у IdHTTP укажи его
также AllowCookies тру
это необходимое условие) достаточное ли оно - хз)
может еще че-то надо
|
|
|

19.01.2009, 21:50
|
|
Участник форума
Регистрация: 06.03.2008
Сообщений: 105
Провел на форуме: 253346
Репутация:
146
|
|
спасибо, но не помогает((
|
|
|

19.01.2009, 21:58
|
|
Участник форума
Регистрация: 06.06.2008
Сообщений: 171
Провел на форуме: 1085601
Репутация:
110
|
|
|
|
|

21.01.2009, 01:56
|
|
Участник форума
Регистрация: 31.08.2006
Сообщений: 149
Провел на форуме: 1763379
Репутация:
155
|
|
Выставляешь компонент IdCookieManager на форму.
Код:
var
i:integer;
s:string;
site :string;
begin
site := 'http://vkontakte.ru';
Cookie := TIdCookieManager.Create(nil);
lData := TStringList.Create;
http := TIdHTTP.Create(nil);
HTTP.Cookiemanager := Cookie;
HTTP.HandleRedirects := False;
lData.Clear;
try
for i:=0 to Memo2.Lines.Count - 1 do
begin
lData.Add(memo2.Lines.Strings[i]);
end;
try
HTTP.Post(site+'/login.php', lData);
except
end;
try
s := http.Get(site+HTTP.Response.Location);
except
end;
memo1.Lines.Add(s);
finally
end;
ldata.free;
end;
Не проверял, но кажется так
|
|
|

21.01.2009, 02:31
|
|
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме: 4037638
Репутация:
1821
|
|
Код:
try
HTTP.Post(site+'/login.php', lData);
except
end;
try
s := http.Get(site+HTTP.Response.Location);
except
end;
Начинается(( очередной велосипед?, не легче ли просто разрешить редиректы и все.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|