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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Послать Post запрос из TWebBrowser 
:(
    Опции темы
Zlo
Дата 28.8.2005, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Допустим есть адрес до скрипта и есть некая сторока
(Такая например: login=Zlo&pass=564321&x=0&y=0)
которую нужно передать скрипту методом пост.

Нашел вот этот код:
Код

var 
  LoginDialog: TLoginDialog; 
  Flags, TargetFrameName, PostData, Headers: OleVariant; 
  S: String; 

... 
with TLoginDialog.Create(Application) do  
try 
  if ShowModal = mrOk then  
  begin 
    S := Format('UserName=%s&Password=%s', [Edit1.Text, Edit2.Text]); 
    PostData := VarArrayCreate([1, Length(S) + 1], varByte); 
    System.Move(S[1], VarArrayLock(PostData)^, Length(S) + 1); 
    VarArrayUnlock(PostData); 
    Headers :=  
      'Content-Type: application/x-www-form-urlencoded'#10#13; 
    WebBrowser1.Navigate('http://intranetserver/secretpage', Flags, 
      TargetFrameName, PostData, Headers); 
  end; 
finally 
  Free; 
end; 




Но немогу понять как его переделать под свои "нужды"!

Может ктонить объяснит?
Или напишет как это сделать проще?





PM MAIL   Вверх
Zlo
Дата 28.8.2005, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Так кажется всетаки разобрался! Сделал так:

Код

procedure TForm1.Button3Click(Sender: TObject);
var
   Flags, TargetFrameName, PostData, Headers: OleVariant;
   S: String;
begin
S:='login='+Edit2.Text+'&pass='+Edit3.Text+'&x=0&y=0';
//--------
PostData := VarArrayCreate([1, Length(S) + 1], varByte);
    System.Move(S[1], VarArrayLock(PostData)^, Length(S) + 1); 
    VarArrayUnlock(PostData); 
    Headers :=  
      'Content-Type: application/x-www-form-urlencoded'#10#13;
//--------
WebBrowser1.Navigate('http://www.domen.ru/login.php', Flags, TargetFrameName, PostData, Headers);

end;


Но всеравно что-то не так....
Можете как аналагичным образом послать пост запрос блинной более 255 символов?
И расскажите плиз что делает код находящийся между комментариями?
PM MAIL   Вверх
p0s0l
Дата 28.8.2005, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

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



Лучше юзай TIdHTTP... Или тебе нужно именно через браузер ?



--------------------
С уважением, г-н Посол.
PM   Вверх
Zlo
Дата 28.8.2005, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Именно через браузер!

Это сообщение отредактировал(а) Zlo - 28.8.2005, 21:37
PM MAIL   Вверх
_hunter
Дата 29.8.2005, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



во-первых: что именно "не так"?
во-вторых: по коду:
PostData := VarArrayCreate([1, Length(S) + 1], varByte); -- создаеш вариантный массив для данных формы
System.Move(S[1], VarArrayLock(PostData)^, Length(S) + 1); -- толкаеш в этот массив ( с блокировкой ( без нее писать нельзя ) ) свою строку
VarArrayUnlock(PostData); -- снимаеш блокировку
Headers := 'Content-Type: application/x-www-form-urlencoded'#10#13; -- заголовок, говорящий о том, что скрипту придет форма ( в зависимости от заголовка данные разбираются разными способами )


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Guest
Дата 3.9.2005, 13:31 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











_hunter
Спасибо!


Цитата(_hunter @ 29.8.2005, 11:37)
System.Move(S[1], VarArrayLock(PostData)^, Length(S) + 1); -- толкаеш в этот массив ( с блокировкой ( без нее писать нельзя ) ) свою строку


а зачем к строке S прибовлять 1?



Цитата(Zlo @ 28.8.2005, 20:29)
Можете помочь каким образом послать пост запрос длинной более 255 символов используя TWebBrowser?


  Вверх
_hunter
Дата 5.9.2005, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



Цитата
там не к строке прибавляется а длина считается ( с учетом завершающего символа )


Цитата
Можете помочь каким образом послать пост запрос длинной более 255 символов используя TWebBrowser?

так и слать...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Гость_Zlo
Дата 7.9.2005, 10:07 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











_hunter
Цитата(_hunter @ 5.9.2005, 11:25)
так и слать...


А Дельфа ругается что типа строка больше 255 символов в переменной S!

  Вверх
Snowy
Дата 7.9.2005, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Ну так Меню:
Project -> Options -> Compiler
Поставь галочку Huge Strings.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

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

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

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

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

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


 




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


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

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