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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2010, 14:32   #1
Rock'n'rolla
Пользователь
 
Аватар для Rock'n'rolla
 
Регистрация: 20.01.2010
Сообщений: 30
По умолчанию Авторизация и выполнение действий.

авторизуюсь я так:
Код:
  
params.Add('Login=' + edit1.text);
params.Add('Domain=mail.ru');
params.Add('Password=' + edit2.text);
StrPage.Text := Http.Post('http://win.mail.ru/cgi-bin/auth', params);
Http.Free;
Далее мне надо чтобы программа переходила на другой урл (другой сервис мэйл.ру), заходил там в определенный раздел, заполнял форму и жал отправить. Делаю:

Код:
data.Add('Body=privet=)))');
Http.Post('http://otvet.mail.ru/question/35105068/?begin_reply=1', data);
Выдается какая то ошибка. Вообщем думаю перемудрил я тут.
Подскажите как правильно надо? И как в тут дела с куки обстоят?
"Смерть стоит того чтобы жить, а любовь стоит того чтобы ждать..." (с)

Последний раз редактировалось Rock'n'rolla; 22.01.2010 в 14:41.
Rock'n'rolla вне форума Ответить с цитированием
Старый 22.01.2010, 16:17   #2
Usov
Форумчанин
 
Аватар для Usov
 
Регистрация: 29.09.2009
Сообщений: 228
По умолчанию

Что это за маразм - data.Add('Body=privet=)))');?
Может имеется ввиду два параметра?
Думаю лучше почитать теорию по HTML, раздел "формы".
Usov вне форума Ответить с цитированием
Старый 22.01.2010, 16:49   #3
Rock'n'rolla
Пользователь
 
Аватар для Rock'n'rolla
 
Регистрация: 20.01.2010
Сообщений: 30
По умолчанию

Textarea имеет имя Body , в него то и надо записать текст (в данном случае "привет").

Вот и вопрос: как это сделать?
"Смерть стоит того чтобы жить, а любовь стоит того чтобы ждать..." (с)
Rock'n'rolla вне форума Ответить с цитированием
Старый 22.01.2010, 17:17   #4
Usov
Форумчанин
 
Аватар для Usov
 
Регистрация: 29.09.2009
Сообщений: 228
По умолчанию

так а в чем прпоблема?
передавай параметр data.Add('Body='+Memo1.Text);
возможно надо будет текст перекодировать например в шестнадцатеричную систему чтоб небыло конфликта с управляющими символами (посмотри как это делает Firefox), или может кто подскажет - есть в инди функция для кодирования текста, что-то типа urlencode (точно не скажу).
Или используй TIdMultiPartFormDataStream с библиотеки idMultiPartFormData для отправки формы, по моему там уже это все предусмотрено.

Последний раз редактировалось Usov; 22.01.2010 в 17:32.
Usov вне форума Ответить с цитированием
Старый 22.01.2010, 21:02   #5
Rock'n'rolla
Пользователь
 
Аватар для Rock'n'rolla
 
Регистрация: 20.01.2010
Сообщений: 30
По умолчанию

Да так и делаю. Там просто если просмотреть исходный код страницы, с которой нужно отправлять данные, форма textarea с именем Body и друге формы (hidden) находятся в ЯваСкрипте. Т.е.сначала жмешь на сайте на кнопку - появляются формы. Это ни как не влияет
"Смерть стоит того чтобы жить, а любовь стоит того чтобы ждать..." (с)
Rock'n'rolla вне форума Ответить с цитированием
Старый 22.01.2010, 22:22   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
с которой нужно отправлять данные, форма textarea с именем Body и друге формы (hidden) находятся в ЯваСкрипте.
1)может форма...и внутри нее поля?
2)скрытые поля тоже надо отправлять.
3)снифферить не пробывали?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.01.2010, 11:40   #7
Rock'n'rolla
Пользователь
 
Аватар для Rock'n'rolla
 
Регистрация: 20.01.2010
Сообщений: 30
По умолчанию

Да , я имел ввиду поля.

Вот пример:
Код:
var HTML="<form name=\"Compose\" id=\"Compose\" method=\"post\" action=\"/doit\" onsubmit=\"return addCommentCheck(this);\">"
      +"<input type=\"hidden\" name=\"action\" value=\"authaddans\" />"
      +"<input type=\"hidden\" name=\"ch\" value=\"3d30dd0f17e8050473425375fcd8fa9a\" />"
      +"<input type=\"hidden\" name=\"qid\" value=\"35122445\" />"
      
      +"<input type=\"hidden\" " + "name=" + ans_name + " value=\"1\" />"
Как же последнее поле отправить?

И если например какие то поля можно не заполнять, их отправлять тоже только пустые или можно не отправлять их?
"Смерть стоит того чтобы жить, а любовь стоит того чтобы ждать..." (с)
Rock'n'rolla вне форума Ответить с цитированием
Старый 23.01.2010, 16:30   #8
Usov
Форумчанин
 
Аватар для Usov
 
Регистрация: 29.09.2009
Сообщений: 228
По умолчанию

1) метод "научного тыка" никто не отменял"
2) если не получилось, тогда надо посмотреть в броузере снифером что передается.
Usov вне форума Ответить с цитированием
Старый 25.01.2010, 11:49   #9
Rock'n'rolla
Пользователь
 
Аватар для Rock'n'rolla
 
Регистрация: 20.01.2010
Сообщений: 30
По умолчанию

Подскажите какой нить снифер, пожалуйста.
"Смерть стоит того чтобы жить, а любовь стоит того чтобы ждать..." (с)
Rock'n'rolla вне форума Ответить с цитированием
Старый 25.01.2010, 12:13   #10
Usov
Форумчанин
 
Аватар для Usov
 
Регистрация: 29.09.2009
Сообщений: 228
По умолчанию

Например для Firefox есть дополнения: LiveHTTPHeaders или Firebug
Usov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
необходимо разьяснение действий DeepPurple Общие вопросы Delphi 9 28.05.2009 11:10
Объединение действий Delphi AlexandЯ Общие вопросы Delphi 2 29.04.2009 13:00
выполнение нескольких действий??? zzzzz HTML и CSS 2 11.12.2008 11:59
Фиксирование действий в файле asale Microsoft Office Excel 7 17.08.2008 09:06