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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2011, 01:00   #1
bunukar
Пользователь
 
Регистрация: 26.04.2010
Сообщений: 40
По умолчанию POST запрос

Приветствую! Нужно зарегистрироваться на сайте(просто ввести майл в строку и нажать ок).
При отслеживании запроса, получаю:
Код:
	POST /ajax.php?JsHttpRequest=c80a961e706fb4d452cb4256f58cb411-form HTTP/1.1
Host	skittles-fun.kz
User-Agent	Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.20) Gecko/20110803 Firefox/3.6.20
Accept	text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language	ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding	gzip,deflate
Accept-Charset	windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive	115
Referer	http://skittles-fun.kz/collection/id/4050/
Cookie	PPHPID=af0df8a0f7d3227d36ee444c389659a9; news_showed2=1; news_showed2=1; __utma
=145526710.888208752.1320735288.1322345393.1322351415.6; __utmz=
145526710.1320735288.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); login=0; login=0; pphpvotes[4]=
1322806920; pphpvotes[4]=1322806920; user=41900; user=41900; __utmb=145526710.6.10.1322351415; __utmc=
145526710
Content-Type	multipart/form-data; boundary=---------------------------23281168279961
Content-Length	760

-----------------------------23281168279961
Content-Disposition: form-data; name="ch_elem[email]"

s_olya_y@mail.ru
-----------------------------23281168279961
Content-Disposition: form-data; name="ch_elem[username]"

Введи свой e-mail
-----------------------------23281168279961
Content-Disposition: form-data; name="ch_elem[password]"

Введи свой пароль
-----------------------------23281168279961
Content-Disposition: form-data; name="resource"

content
-----------------------------23281168279961
Content-Disposition: form-data; name="params[url]"

/login/
-----------------------------23281168279961
Content-Disposition: form-data; name="params[method]"

post
-----------------------------23281168279961--

Подскажите, пожалуйста, как отправить сам запрос с передачей майла?
Сам в Indy новиче, только начинаю разбираться.

Читаем правила раздела.
Там подробно написано, как следует оформлять код и что получается, если этого не делать.

Последний раз редактировалось bunukar; 27.11.2011 в 03:29.
bunukar вне форума Ответить с цитированием
Старый 27.11.2011, 02:36   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Как видим, тут есть Content-Type multipart/form-data; и оттуда будем брать имена полей из свойсва Name=''
исходя из этого заюзаем TidHTTP и TidMultiFartFormDataStream

и то что до -----------------------------23281168279961, явлется значением обьекта в поле Name=''.

Итого:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  http:TIdHTTP;   //Наш HTTP клиент
  Data:TIdMultiPartFormDataStream;  //Поля Content-Type multipart/form-data;
  s:string;
begin
  http:=TIdHTTP.Create(nil); //Создание компонента в run-time
  Data:=TIdMultiPartFormDataStream.Create; //Создание в run-time(это не компонент)
  try
  //Заполнение
  Data.AddFormField('ch_elem[email]','s_olya_y@mail.ru');
  Data.AddFormField('ch_elem[username]','lolko');
  Data.AddFormField('ch_elem[password]','1231232134');
  Data.AddFormField('resource','content');
  Data.AddFormField('params[url]','/login/');
  Data.AddFormField('params[method]','post');

  //Отправка
  s:=http.Post('http://DOMAIN.COM/',Data);

  {
  в s содержится ответ сервера.
  }
  finally
    FreeAndNil(http);
    FreeAndNil(Data);
  end;
end;
Но я что-то совсем не помню сайта с регистрацией, и без капчи.
Человек_Борща вне форума Ответить с цитированием
Старый 27.11.2011, 02:46   #3
bunukar
Пользователь
 
Регистрация: 26.04.2010
Сообщений: 40
По умолчанию

Человек_Борща
Спасибо, что отозвался
Но я не могу найти TIdMultiPartFormDataStream. Где можно найти его?
bunukar вне форума Ответить с цитированием
Старый 27.11.2011, 02:48   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

сказал же, что это не компонент.
в модуле IdMultiPartFormData
Человек_Борща вне форума Ответить с цитированием
Старый 27.11.2011, 03:24   #5
bunukar
Пользователь
 
Регистрация: 26.04.2010
Сообщений: 40
По умолчанию

C регистрацией разобрался.
Теперь встал вопрос второго запроса POST. Нужно кликнуть по js.
Вот код скрипта:
Код:
<div class="b-title">

		<div class="b-cont">
			<p>оцени работу:</p>
			<del class="clr"></del>
			
									<a onclick="project.rating.save('4061', '1', this);" 

href="javascript:void(0);" class="act"></a>
			<a onclick="project.rating.save('4061', '2', this);" href="javascript:void(0);"></a>
			<a onclick="project.rating.save('4061', '3', this);" href="javascript:void(0);"></a>
			<a onclick="project.rating.save('4061', '4', this);" href="javascript:void(0);"></a>
			<a onclick="project.rating.save('4061', '5', this);" href="javascript:void(0);" class="last"></a>

								</div>
		<del class="clr"></del>
	</div>
И код отпраленного запроса:
Код:
POST /ajax.php?resource=rating&JsHttpRequest=d3113b36d7c54f192028531e7044a324-xml HTTP/1.1
Host: skittles-fun.kz
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.20) Gecko/20110803 Firefox/3.6.20
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Content-Type: application/octet-stream; charset=UTF-8
Referer: http://skittles-fun.kz/collection/id/4130/
Content-Length: 17
Cookie: PPHPID=af0df8a0f7d3227d36ee444c389659a9; news_showed2=1; news_showed2=1; __utma
=145526710.888208752.1320735288.1322362314.1322369440.8; __utmz=145526710.1320735288.1.1.
utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); login=0; login=0; pphpvotes[4]=
1322806920; pphpvotes[4]=1322806920; user=42007; user=42007; __utmc=145526710; __utmb=
145526710.3.10.1322369440; sess_id=dbfcffec290ed93e4a08c8d8a04a2460; sess_id=
dbfcffec290ed93e4a08c8d8a04a2460
Pragma: no-cache
Cache-Control: no-cache

v_value=5&id=4130
Не могу разобраться, как отправить v_value и id. Это вроде как не поля.

Последний раз редактировалось bunukar; 27.11.2011 в 05:16.
bunukar вне форума Ответить с цитированием
Старый 27.11.2011, 16:09   #6
Зод
Форумчанин
 
Регистрация: 25.08.2011
Сообщений: 140
По умолчанию

Если ты хочешь использовать именно скрипт тогда ищи интерпретатор яваскрипта для Делфи. Встроенного нет насколько помню, что жаль.

Насчет отправки не полей то здесь нужно загрузить документ и методом Pos вытянуть нужные тебе значение.
Зод вне форума Ответить с цитированием
Старый 27.11.2011, 19:26   #7
bunukar
Пользователь
 
Регистрация: 26.04.2010
Сообщений: 40
По умолчанию

Зод
А как это можно реализовать? Я просто не могу понять в каком видео отправлять эти данные и по какой ссылке.
bunukar вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Post запрос grafgrial PHP 2 19.10.2011 05:22
Post запрос Arsenx777 Работа с сетью в Delphi 4 18.08.2011 19:56
post запрос? codermoder Работа с сетью в Delphi 19 01.09.2010 18:23
POST запрос DeDoK Работа с сетью в Delphi 6 12.07.2009 00:48