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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2010, 10:45   #1
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию Авторизация на сайте, в HTTP Analyzer работает в программе нет.

Всем доброго времени суток!

Проблема:
В http analyzer смотрю что посылается на сайт:
Код:
__Click=0
FullName=
Password=
Собственно там все работает.

Но вот с кодом проблема:
Код:
procedure TAltolanThread.Execute;
var
  lcUserLogin,
  lcUserPassword:string;
  Http:TIdHTTP;
  Request:TStringList;
  Answer:string;
  i:Integer;
begin
  //lcUserLogin:=MainUnit.UserLogin;
  //lcUserPassword:=MainUnit.UserPassword;
  lcUserLogin:='*****';
  lcUserPassword:='*****';
  Request:=TStringList.Create;
  http:=TIdHTTP.Create(nil);
  Http.HandleRedirects:=True;
  try
  Request.Add('__Click=0');
  Request.Add('FullName=***');
  Request.Add('Password=****');
  Answer:=Http.Post('http://altolan.com/www2/int-clients.nsf/userenter?OpenForm&Seq=1',Request);
  MainForm.sRichEdit1.Lines.Add(Utf8ToAnsi(Answer));
  finally
  Request.Free;
  Http.Free;
  end;
end;
и ошибка:
HTTP/1.1 500 Internal Server Error

Что я делаю не правельно?
Человек_Борща вне форума Ответить с цитированием
Старый 25.11.2010, 16:04   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Собственно разобрался немного....
Код:
procedure TAltolanThread.Execute;
var
  lcUserLogin,
  lcUserPassword:string;
  Http:TIdHTTP;
  Request:TStringList;
  Answer:string;
  i:SmallInt;
begin
  //lcUserLogin:=MainUnit.UserLogin;
  //lcUserPassword:=MainUnit.UserPassword;
  Request:=TStringList.Create;
  http:=TIdHTTP.Create(nil);
  Http.HandleRedirects:=True;
  //Requset data
  try
  Request.Clear;
  Request.Add('__Click=0');
  Request.Add('FullName=);
  Request.Add('Password=');
  Answer:=Http.Post('http://altolan.com/www2/int-clients.nsf/userenter?OpenForm&Seq=1',Request);
  MainForm.sRichEdit1.Lines.Add(Utf8ToAnsi(Answer));
  finally
  Request.Free;
  Http.Free;
  end;
end;
Ошибка состоит в том что в запросе POST зазмер должен равняться 40. У меня же он равен 41 т.к. после Password и моего пароля идёт знак & который вообще непонятно откуда взялся. (Смотрел HTTP Analyzer'ом)
И от сюда растут ног ой т.е. 4 параметр который не имеет ни имени ни значения и его надо заполнить, хатя такогоо параметра и в памине нет.
По сути пустая строка.

Как убрать непонятный &?
Человек_Борща вне форума Ответить с цитированием
Старый 30.11.2010, 16:40   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Поможет кто?
Человек_Борща вне форума Ответить с цитированием
Старый 30.11.2010, 17:19   #4
sxcine
Пользователь
 
Аватар для sxcine
 
Регистрация: 26.05.2010
Сообщений: 78
По умолчанию

procedure TAltolanThread.Execute;
var
lcUserLogin,
lcUserPassword:string;
Http:TIdHTTP;
Request:TStringList;
Answer:string;
i:SmallInt;
begin
//lcUserLogin:=MainUnit.UserLogin;
//lcUserPassword:=MainUnit.UserPasswo rd;
Request:=TStringList.Create;
http:=TIdHTTP.Create(nil);
Http.HandleRedirects:=True;
//Requset data
try
Request.Clear;
Request.Add('__Click=0');
Request.Add('FullName=');
Request.Add('Password=');
Answer:=Http.Post('http://altolan.com/www2/int-clients.nsf/userenter?OpenForm&Seq=1',Request);
MainForm.sRichEdit1.Lines.Add(Utf8T oAnsi(Answer));
finally
Request.Free;
Http.Free;
end;
end;


строка Request.Add('FullName=); неверная вроде, надо закрывать переменную - Request.Add('FullName=');.
sxcine вне форума Ответить с цитированием
Старый 30.11.2010, 19:54   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Собственно=) Это не решает проблемы , пустой переменной.
Код:
procedure TAltolanThread.Execute;
var
  lcUserLogin,
  lcUserPassword:string;
  Http:TIdHTTP;
  Request:TStringList;
  Answer:string;
  i:SmallInt;
begin
  //lcUserLogin:=MainUnit.UserLogin;
  //lcUserPassword:=MainUnit.UserPassword;
  Request:=TStringList.Create;
  http:=TIdHTTP.Create(nil);
  Http.HandleRedirects:=True;
  //Requset data
  try
  Request.Clear;
  Request.Add('__Click=0');
  Request.Add('FullName=');
  Request.Add('Password=');
  Answer:=Http.Post('http://altolan.com/www2/int-clients.nsf/userenter?OpenForm&Seq=1',Request);
  MainForm.sRichEdit1.Lines.Add(Utf8ToAnsi(Answer));
  finally
  Request.Free;
  Http.Free;
  end;
end;
Откуда сие берётся?

Added
Формируется список команд посылаемых на сервер:
Цитата:
__Click=0&FullName=&Password=&
Должно быть
Цитата:
__Click=0&FullName=&Password=
откуда в запросе & который обрабатывает как ещё один параметр серверу без имени и значения что ведёт к ошибке http/1.1 500 internal server error?

Последний раз редактировалось Человек_Борща; 30.11.2010 в 20:50.
Человек_Борща вне форума Ответить с цитированием
Старый 01.12.2010, 07:17   #6
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
По умолчанию

весь запрос смотрел?
Код:
__Click=0&FullName=******&Password=******&submit=%3E%3E
может еще что забыл?
Помог, нажми весы слева
grafgrial вне форума Ответить с цитированием
Старый 06.12.2010, 15:40   #7
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Код:
submit=%3E%3E
этого на сайт не посылается. Точно проверил через HTTP Analyzer длинна 40 знаков.
Моя программа высылает 41 знак.
41-ый и есть пустое, не заполненное поле. Откуда берётся я хз=)

Последний раз редактировалось Человек_Борща; 06.12.2010 в 22:01.
Человек_Борща вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Авторизация HTTP/1.1: Header timon777777 Работа с сетью в Delphi 5 28.07.2010 15:57
Авторизация на сайте Abadd0N Работа с сетью в Delphi 14 10.06.2009 12:31
Delphi + HTTP = авторизация extrimportal Работа с сетью в Delphi 4 08.04.2009 08:26
Авторизация c Indy HTTP key' Работа с сетью в Delphi 20 05.12.2008 17:08
Авторизация на сайте vladimirzzz Работа с сетью в Delphi 7 28.09.2008 21:59