Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > Как получить POST данные


Автор: Firebird 13.11.2007, 06:15
  Есть php-скрипт, который загружается с помощью WebBrowser

Код

<form method='POST' action='letter.php'>
  <input type='hidden' name='idn' value='3'>
  <input type='submit' name='button' value='Add'>
</form>


   Нажимаю на submit. Необходимо в Delphi получить данные, переданные методом POST, т.е.  idn = 3.
Этот параметр затем используется в Delphi. Как это можно сделать?

Автор: December 13.11.2007, 21:56
Ищи по форуму, тема уже обсуждалась.

Автор: ilBEastli 16.11.2007, 21:03
Также интересует данная тема. Поиск ничего не дал.
Есть несколько тем, в которыx обсуждалось, как из строки получить PostData (OleVariant), пригодную для использования в качестве параметра. Обратного действия найти не удалось. smile 
December, если не сложно, укажи верный путь. smile 

Автор: December 16.11.2007, 22:12
Код

function PostDataToString(gPD:OleVariant):string;
var
  wstr:string;
  i:integer;
  b:integer;
begin
result:='';
try
if VarArrayDimCount(gPD)<1 then exit;
b:=VarArrayHighBound(gPD,1);
if b=0 then exit;
wstr:='';
for i:=0 to b do
  if gPD[i]<>0
    then wstr:=wstr+chr(byte(gPD[i]))
    else wstr:=wstr+'\0';//rude approach, I know
except
exit;
end;//except
result:=wstr;
end;//PostDataToString

Применяется к PostData в BeforeNavigate2

Автор: ilBEastli 17.11.2007, 13:49
December, большое спасибо за предоставленную функцию. smile 

Автор: DDDsa 1.3.2009, 00:36
Друзья мои, помогите, почти та же проблема. На один сайт нужно отправить пост-запрос "text=..." и результат вывести в TWebBrowser.

Тестирую вот на этом адресе: http://www.typograf.ru/webservice/
Там работает тот же механизм, что и на нужном сайте (цитата из инфо: "Работает сервис достаточно просто: необходимо осуществить POST запрос в переменной text по адресу http://www.typograf.ru/webservice/, и принять ответ. Всю остальную рутинную работу он сделает за вас.")

Но как я ни бился, все равно он мне выдает "Ошибка: вы забыли передать текст".

Юзал я и гугл (он предлагает только http://www.delphisources.ru/pages/faq/base/get_post_data.html. А это не работает.)
Юзал я и поиск здесь, он предлагает еще одну схожую http://forum.vingrad.ru/forum/topic-87836.html, но там проблема решается через idHTTP, который мне не подходит, потому что на нужном сайте с ним встает проблема преодоления логин-формы. Как показала практика - нерешаемая традиционными (то есть предложенными в той теме) методами.

Автор: DDDsa 1.3.2009, 12:08
UDP: с залогиниванием через IdHTTP я разобрался. Вот только этот метод мне все равно не подходит. Дело в том, что мне нужно чтобы можно было послать на тот адрес определенный текст, и чтобы в TWebBrowser вывелся тот же текст, но оформленный по всем правилам того сайта, включая местные теги.
а мне выводится просто
<p>Text</p>

UPD2: Однако местные теги там оформляются. Теперь хотя бы можно помудрить с css-файлами и попытаться сделать шаблон страницы и т д, если уж другого выхода нет. Или, может, все же есть?

PS: Большое спасибо aktuba за разрешение проблем по этому вопросу в других темах, благодаря его советам все и получилось.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)