Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> На сайт отправляет 41 байт вместо 40! Браузер посылает 40 , idhttp 41 Почему? 
:(
    Опции темы
ЧеловекБорща
  Дата 17.1.2011, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 5.6.2010

Репутация: нет
Всего: нет



Всем привет!

Проблема:
Есть сайт(моего интернет провайдера). Пишу программу логина на этот сайт, воружился сниффером и delphi 7.
Браузер посылает на сайт 3 параметра:
  • __click=0 //Кликнуто ли по флеш-изображению(это спрятанная переменная)
  • FullName= //Логин(5 знаков)
  • Password= //Пароль(6 знаков)
Вот как посылаю:
Код

procedure TAltolanThread.Execute;
var
  Http: TIdHTTP;
  Request: TStringList;
  Answer: string;
begin
  Request := TStringList.Create;
  http := TIdHTTP.Create(nil);
  Http.HandleRedirects := True;
  //Requset data
  try
   Request.add('__Click=0');
    Request.add('FullName=12345');
    Request.add('Password=abcdef');
    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;


сниферром смотрю что посылает браузер и программа:
Бразер отправлет POS-данные:
1. __click=0
2. FullName=12345
3. Password=abcdef

соответственно вот так:
__Click=0&FullName=12345&Password=abcdef

40 байт. Авторризация проходит нормально.

Те же данные посылаются и моей программой:
1. __click=0
2. FullName=12345
3. Password=abcdef
4.                             //пустое поле

А вот тут так:
__Click=0&FullName=12345&Password=abcdef&

Где & и есть 4 поле, из-за которого нет ни авторизации и ошибка: Internal Server Error
Длинна 41 байт.

Даннае посылаются одинаковые однако indy приписывает & в конец. 

Как и чем это лечится?  smile 


Это сообщение отредактировал(а) ЧеловекБорща - 17.1.2011, 21:14
PM MAIL   Вверх
MetalFan
Дата 17.1.2011, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



используй TIdMultipartFormData вместо StringListа, или проверь, что используется крайняя версия indy


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
ЧеловекБорща
Дата 17.1.2011, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 5.6.2010

Репутация: нет
Всего: нет



Вот delphi 2010(поставил) :
Код

procedure TForm1.sButton1Click(Sender: TObject);
var
  Data:TIdMultiPartFormDataStream;
begin
  Data:=TIdMultiPartFormDataStream.Create;
  Data.AddFormField('__click','0');
  Data.AddFormField('FullName','12345');
  Data.AddFormField('Password','******');
  sMemo1.Lines.Add(Utf8ToAnsi(IdHTTP1.Post('http://altolan.com/www2/int-clients.nsf/userenter?OpenForm&Seq=1',Data)));
  Data.Free;
  end;

та же ошибка 504 internal server error
PM MAIL   Вверх
Mifody
Дата 18.1.2011, 01:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 5.8.2008

Репутация: 2
Всего: 2



Мнда, никогда не любил эти Инди, и уж точно никогда к ним не вернусь smile.
Итак:
1. в отладчике Request.Text = '__Click=0'#$D#$A'FullName=12345'#$D#$A'Password=abcdef'#$D#$A 
х/з, с какого перепуга Делфя поставила в конце пустую строку, причем обрезать не получается :(
2. Инди уперто воспринимает пустую строку как строку с данными.
3. TIdMultiPartFormDataStream - это случайно не для "multipart/form-data" ???? 

Вообщем помнится, я в свое время суток трое бился с такой проблемой, ничерта не получилось :(, в результате отказался вообще от индей.

UPD: Кстати, поставьте кукис менеджер и сделайте обработку редиректа (перекройте на метод 'GET'), а то у меня из-за не правильных (ведь логин/пароль от балды) в циклический редирект инди ушла. smile

Это сообщение отредактировал(а) Mifody - 18.1.2011, 01:05
PM MAIL WWW   Вверх
ЧеловекБорща
Дата 18.1.2011, 01:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 5.6.2010

Репутация: нет
Всего: нет



Кукисы включены редирект тоже, но и эффект не меняется smile 

GET запрос сайт не воспринимает, только POST, кукисов сайт тоже не держит.

P.S. а что тогда использовать? Можете если не сложно пооветовать алтернативу? 
PM MAIL   Вверх
Keeper89
Дата 18.1.2011, 03:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 6
Всего: 58





--------------------
PM MAIL WWW   Вверх
Mifody
Дата 18.1.2011, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 5.8.2008

Репутация: 2
Всего: 2



Еще говорят Overbyte ICS компоненты весьма не плохие, но не знаю, сам не юзал. Точнее мне как-то не понравилась их логика.
А вообще Keeper89 верно посоветовал, synapse очень даже не плохие. Конечно и у них нарыался уже на одну недоработку (даже и багом ее не назовеш), ну и не такие удобные как Indy. Но я еще не натыкался на ситуацию, когда синапс не мог работать с сайтом, все проблемы были из-за кривых рук при написаниии кода smile.
Единственное что может напрячь, перед каждым запросом заголовок надо заново формировать и документ очищать (если данные нет необходимости отправлять)

Это сообщение отредактировал(а) Mifody - 18.1.2011, 10:21
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0780 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.