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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.07.2015, 23:25   #1
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию Отправить POST запрос на текущую страницу в webbrowserе

Доброго времени суток!
Как можно на текущую открытую страницу отправить POST запрос?
nibufep вне форума Ответить с цитированием
Старый 05.07.2015, 23:37   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

post не странице посылается, а серверу.
чо за франкенштейна рожаешь?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 05.07.2015, 23:39   #3
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
post не странице посылается, а серверу.
чо за франкенштейна рожаешь?
Ну да, как послать запрос серверу и отобразить страницу?
nibufep вне форума Ответить с цитированием
Старый 05.07.2015, 23:44   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Ну да, как послать запрос серверу и отобразить страницу?
на мой вопрос ответь сначала.
Цитата:
чо за франкенштейна рожаешь?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 06.07.2015, 00:06   #5
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию

нужно отправить сообщение на страницу. Нашел вот процедуру:

Код:
procedure SubmitPostForm;
var
strPostData: string;
Data: Pointer;
URL, Flags, TargetFrameName, PostData, Headers: OleVariant;
begin
strPostData := 'text=15454';
PostData := VarArrayCreate([0, Length(strPostData) - 1], varByte);
Data := VarArrayLock(PostData);
try Move(strPostData[1], Data^, Length(strPostData));finally VarArrayUnlock(PostData);end;
URL := 'http://site.ru/';
Flags := EmptyParam;
TargetFrameName := EmptyParam;
Headers := EmptyParam;
Form1.WebBrowser1.Navigate(URL, Flags, TargetFrameName, PostData, Headers);
end;
Почему криво отправляет?
Изображения
Тип файла: png 2015-07-06_000532.png (2.6 Кб, 144 просмотров)
nibufep вне форума Ответить с цитированием
Старый 06.07.2015, 00:37   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Нашел вот процедуру
не читал.
Цитата:
Почему криво отправляет?
тебе не кажется, что это вопрос автору говнокода?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 06.07.2015, 09:30   #7
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
нужно отправить сообщение на страницу. Нашел вот процедуру:
Потому что у unicode строк длинна одного символа - 2 байта.
Человек_Борща вне форума Ответить с цитированием
Старый 06.07.2015, 10:12   #8
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Потому что у unicode строк длинна одного символа - 2 байта.
а как тогда сделать?
nibufep вне форума Ответить с цитированием
Старый 06.07.2015, 11:12   #9
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
а как тогда сделать?
move, length и умножение на два.
Человек_Борща вне форума Ответить с цитированием
Старый 06.07.2015, 13:39   #10
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию

Код:
procedure TForm.Button1Click(Sender: TObject);
var
i: Integer;
EncodedStr: string;
Header: OleVariant;
Post: OleVariant;
begin
EncodedStr := 'text=x';
Post := VarArrayCreate([0, Length(EncodedStr) - 1], varByte);
for I := 1 to Length(EncodedStr) do
Post[I - 1] := Ord(EncodedStr[I]);
Header := 'Content-Type: application/x-www-form-urlencoded' + #10#13;
WebBrowser1.Navigate('http://site', EmptyParam,EmptyParam, Post, Header);
end;
Почему с английским текстом все работает нормально, но если в запросе есть русский текст то ошибка:

Цитата:
overflow while converting variant of type word into type byte
nibufep вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправить POST запрос nibufep PHP 9 30.09.2015 17:26
Отправить POST-запрос на сервер sarmat84 Работа с сетью в Delphi 4 21.08.2012 10:44
SQL запрос на текущую запись SERG1980 БД в Delphi 5 12.11.2010 14:20
Как вставлять WordArt и TextBox на "текущую" страницу? Diego__ Microsoft Office Word 12 11.09.2009 18:08