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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2010, 22:15   #1
J-Max
Пользователь
 
Регистрация: 04.02.2010
Сообщений: 52
По умолчанию Изменить пост запрос TWebBrowser

Мне надо перехватить параметр message и заменить его значение на свое. Как это сделать?
например передается в PostData message=привет
Надо заменить на message=сообщение1
В WebBrowser1BeforeNavigate2 вроде можно это делать, но там PostData в виде каракуль. можно как-то её перекодировать в нормальный вид, отпарсить нажную мне строку, заменить, снова перевести в те каракули и продолжить отправку?

Последний раз редактировалось J-Max; 13.02.2010 в 23:28.
J-Max вне форума Ответить с цитированием
Старый 23.02.2010, 10:55   #2
Diogo76
Пользователь
 
Регистрация: 11.02.2010
Сообщений: 13
По умолчанию

Цитата:
Сообщение от J-Max Посмотреть сообщение
Мне надо перехватить параметр message и заменить его значение на свое. Как это сделать?
например передается в PostData message=привет
Надо заменить на message=сообщение1
В WebBrowser1BeforeNavigate2 вроде можно это делать, но там PostData в виде каракуль. можно как-то её перекодировать в нормальный вид, отпарсить нажную мне строку, заменить, снова перевести в те каракули и продолжить отправку?
Код:
function Str2Variant(S: string): OleVariant;
var
  Data:Pointer;
begin
  Result:=VarArrayCreate([0,Length(S)],varByte);
  Data:=VarArrayLock(Result);
  try
    Move(S[1],Data^,Length(S));
  finally
    VarArrayUnlock(Result);
  end;
  Result[Length(S)]:=0;
end;

procedure TfrmMain.Weber1BeforeNavigate2(Sender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
var
  Post: WideString;
  S : String;
begin
  if нужно_изменять_данные then
  begin
    Post:=Postdata;
    SetString(S, PChar( PWideChar( Post ) ), Length( Post )*2 );
    // тут делаете свои операции со строкой S в которой содержится информация пост-запроса
    ......

    // Присваиваем обратно новые данные
    PostData := Str2Variant(S);
    OleVariant(pDisp).Navigate2 (URL, Flags, TargetFrameName, PostData, Headers);
    Cancel:=True;
    exit;
  end;
end;
Diogo76 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как изменить размер выделеного текста в twebbrowser правильно pervii Мультимедиа в Delphi 0 08.02.2010 09:09
Пост запрос в кодировке 'multipart/form-data' bmp152 Работа с сетью в Delphi 1 21.01.2010 02:58
Что нужно изменить, чтоб запрос заработал? Paul Hindenburg PHP 1 08.10.2008 09:45
не проходит пост - запрос.... Kitt Работа с сетью в Delphi 4 13.05.2008 20:38