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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.08.2011, 14:21   #1
Arsenx777
Delphi, c++, php
Форумчанин
 
Аватар для Arsenx777
 
Регистрация: 14.03.2011
Сообщений: 288
Вопрос Опять POST запрос!

Вчера я создал тему:
http://www.programmersforum.ru/showthread.php?t=163475
на что мне ответили, надо воспользоваться сниффером.

Я произвел авторизацию на данном форуме, что произошло успешно. Потом я захотел поменять программно аватарку

Код:
procedure TForm1.Button2Click(Sender: TObject);
var info2: TStringList;
  dr,ss: String;
  ava: TMemoryStream;
begin
  info2:= TStringList.Create;
try
  info2.Add('s=');
  info2.Add('securitytoken=1313672260-d9aaf5139960bdd1acf2b876f252434e2b520947');
  info2.Add('do=updateavatar');
  info2.Add('avatarid=0');
  info2.Add('upload='+edit3.text);
    dr:=idhttp1.Post('http://www.programmersforum.ru/profile.php?do=updateavatar',info2);
      ava:=TMemoryStream.Create;
      ss:='http://www.programmersforum.ru/'+ gg;
      idhttp1.Get(ss,ava);
      ava.SaveToFile('C:\01.jpg');
      ava.Free;
        image1.Picture.LoadFromFile('C:\01.jpg');
finally
  info2.Free;
     end;
Аватарка не меняется, не могу понять почему, я проверял через сниффер http analizer, то что все данные правильно оправлябтся.
В чем ошибка помогите пожалуйста?
Мудр тот, кто знает нужное, а не многое.

Arsenx777 вне форума Ответить с цитированием
Старый 19.08.2011, 20:27   #2
Arsenx777
Delphi, c++, php
Форумчанин
 
Аватар для Arsenx777
 
Регистрация: 14.03.2011
Сообщений: 288
По умолчанию

Мне кто то поможет?
Мудр тот, кто знает нужное, а не многое.

Arsenx777 вне форума Ответить с цитированием
Старый 22.08.2011, 09:30   #3
Mifody
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 215
По умолчанию

ну и правильно Вам сказал "надо пользоваться снифером"
Код:
<form method="post" action="profile.php?do=updateavatar" enctype="multipart/form-data">
Это Вам ни о чем не говорит? И Вы уверены, что данные верно отправляются? ВСЕ выглядит одинаково с данными, отправляемыми браузером?
Лучше будет если выложите логи снифера браузера и программы, можно в личку

З.Ы. На будущее, то, что шлете Вы и то, что шлет браузер должны совпадать с точностью до символа. По крайней мере в первое время (пока не набьете кучу шишек), и по крайней мере в отправляемых данных (ну те части, которые должны быть неизменными)
Помог с вопросом - тыркаем в весы, Вам не сложно, а мне приятно
Mifody вне форума Ответить с цитированием
Старый 22.08.2011, 11:49   #4
Arsenx777
Delphi, c++, php
Форумчанин
 
Аватар для Arsenx777
 
Регистрация: 14.03.2011
Сообщений: 288
По умолчанию

Наконец мне кто-то ответил по теме

В архиве исходник и скриншот параметров пойманных сниффером
Мудр тот, кто знает нужное, а не многое.


Последний раз редактировалось Arsenx777; 22.08.2011 в 14:21.
Arsenx777 вне форума Ответить с цитированием
Старый 22.08.2011, 13:06   #5
Mifody
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 215
По умолчанию

первую часть моего ответа читали?
в общем, самая первая ошибка - данные должны быть "multipart/form-data".
В индях класс, кажись, называется IdMultipartFormData, тут на форуме вроде встречал как с ним работать.
Помог с вопросом - тыркаем в весы, Вам не сложно, а мне приятно
Mifody вне форума Ответить с цитированием
Старый 22.08.2011, 13:26   #6
Arsenx777
Delphi, c++, php
Форумчанин
 
Аватар для Arsenx777
 
Регистрация: 14.03.2011
Сообщений: 288
По умолчанию

ого! даже не слышал о таком, щас поищу! спасибо
Мудр тот, кто знает нужное, а не многое.

Arsenx777 вне форума Ответить с цитированием
Старый 22.08.2011, 16:04   #7
Arsenx777
Delphi, c++, php
Форумчанин
 
Аватар для Arsenx777
 
Регистрация: 14.03.2011
Сообщений: 288
Вопрос

Код:
procedure TForm1.Button2Click(Sender: TObject);
var dr,ss: String;
  fD: TIdMultiPartFormDataStream;
begin
  fD:=TIdMultiPartFormDataStream.Create;
try
  fd.AddFormField('s','');
  fd.AddFormField('securitytoken','1313672260-d9aaf5139960bdd1acf2b876f252434e2b520947');
  fd.AddFormField('do','updateavatar');
  fd.AddFormField('avatarid','0');
  fd.AddFormField('avatarurl','http:\\www.');
  fd.AddFormField('MAX_FILE_SIZE','31457280');
  fd.AddFile('upload','C:\Documents and Settings\Admin\Рабочий стол\Ars.Pro\Картинки\unixf.jpg','multipart/form-data');
     dr:=idhttp1.Post('http://www.programmersforum.ru/profile.php?do=updateavatar',fd);
   memo1.Text:=dr;
finally
  fd.Free;
     end;
Вот попробовал: но мне в мемо приходет ответ от пост запрса

Код:
Сообщение форума

    Ваш запрос не может быть обработан, так как маркер безопасности неверный.

    Если эта ошибка произошла после выполнения обычного действия и при повторном выполнении действий она не исчезает, то, пожалуйста, сообщите администратору об этом, не забыв указать максимально полное описание действий, которые привели к её возникновению.
В чем у меня ошибка? помогите пожалуйста
Мудр тот, кто знает нужное, а не многое.

Arsenx777 вне форума Ответить с цитированием
Старый 23.08.2011, 12:24   #8
Arsenx777
Delphi, c++, php
Форумчанин
 
Аватар для Arsenx777
 
Регистрация: 14.03.2011
Сообщений: 288
По умолчанию

Вот исходник
Мудр тот, кто знает нужное, а не многое.


Последний раз редактировалось Arsenx777; 23.08.2011 в 13:18.
Arsenx777 вне форума Ответить с цитированием
Старый 23.08.2011, 12:48   #9
Mifody
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 215
По умолчанию

1. securitytoken - не вбивать в программе а парсить из кода страницы
2. fd.AddFile('upload','C:\Documents and Settings\Admin\Рабочий стол\Ars.Pro\Картинки\unixf.jpg','m ultipart/form-data'); сменить на fd.AddFile('upload','C:\Documents and Settings\Admin\Рабочий стол\Ars.Pro\Картинки\unixf.jpg','i mage/jpeg');

Эт на вскидку, еще может понадобиться CookieManager, бросить на форму и подключить к IdHTTP. Но не факт, может он и не нужен

З.Ы. Лог сохраняется в снифере, ткунть в пиктограмму с "Save"
Помог с вопросом - тыркаем в весы, Вам не сложно, а мне приятно
Mifody вне форума Ответить с цитированием
Старый 23.08.2011, 13:02   #10
Arsenx777
Delphi, c++, php
Форумчанин
 
Аватар для Arsenx777
 
Регистрация: 14.03.2011
Сообщений: 288
По умолчанию

ok! спасибо попробую
Мудр тот, кто знает нужное, а не многое.

Arsenx777 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Post запрос Arsenx777 Работа с сетью в Delphi 4 18.08.2011 19:56
Post запрос nakazanie Работа с сетью в Delphi 4 14.02.2011 11:52
POST запрос DeDoK Работа с сетью в Delphi 6 12.07.2009 00:48
Опять запрос, помогите плиз yulia БД в Delphi 4 24.05.2007 23:12