Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 11.08.2009
Сообщений: 8

POST - запрос средствами CppWebBrowser

28.06.2012, 18:53. Показов 2311. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать POST-запрос с помощью CppWebBrowser?
Есть такой код отсюда How to post data using TCppWebBrowser in C++Builder, но он не компилируется, жалуется на строчку
TVariant vFlags = {0}, vTargetFrameName={0}, vPostData={0}, vHeaders={0};
с сообщением TVariant не может инициализироваться через {}. Что ему не хватает, как их правильно инициализировать эти TVariant?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
void WebPostData(TCppWebBrowser *CppWebBrowser, String sURL, String sPostData)
{
  BSTR bstrHeaders = NULL;
  TVariant vFlags = {0}, vTargetFrameName={0}, vPostData={0}, vHeaders={0};
  LPSAFEARRAY psa;
  LPCTSTR cszPostData = sPostData.c_str();
  UINT cElems = lstrlen(cszPostData);
  LPSTR pPostData;
  LPVARIANT pvPostData;
 
  bstrHeaders = SysAllocString(L"Content-Type: application/x-www-form-urlencodedrn");
  if (!bstrHeaders){
    Application->MessageBox("Could not allocate bstrHeaders", "Warning", MB_OK | MB_ICONWARNING);
    return;
  }
 
  V_VT(&vHeaders) = VT_BSTR;
  V_BSTR(&vHeaders) = bstrHeaders;
 
  pvPostData = vPostData;
 
  if(pvPostData){
    VariantInit(pvPostData);
 
    psa = SafeArrayCreateVector(VT_UI1, 0, cElems);
    if(!psa){
      return;
    }
 
    SafeArrayAccessData(psa, (LPVOID*)&pPostData);
    memcpy(pPostData, cszPostData, cElems);
    SafeArrayUnaccessData(psa);
 
    V_VT(pvPostData) = VT_ARRAY | VT_UI1;
    V_ARRAY(pvPostData) = psa;
  }
 
   CppWebBrowser->Navigate((TVariant)sURL, &vFlags, &vTargetFrameName, &vPostData, &vHeaders);
}
 
// Вызов функции
WebPostData(CppWebBrowser1, "http://mysite.com/news.php", "id=3&pass=dfgdf");
Добавлено через 4 часа 41 минуту
Сам спросил, сам отвечаю. Нашел на delphigroups.info этот простой и рабочий код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
AnsiString asPostData = "login=Coder&pass=AseFat";
LPSAFEARRAY psa = SafeArrayCreateVector(VT_UI1, 0, asPostData.Length());
if( psa )
    {
    void *pvdata = NULL;
    SafeArrayAccessData(psa, &pvdata);
    memcpy(pvdata, asPostData.c_str(), asPostData.Length());
    SafeArrayUnaccessData(psa);
    TVariant vPostData(psa);
    TVariant vURL = AnsiString("http://mysite.com/login.php");
    TVariant vContentType = AnsiString("Content-Type: application/x-www-form-urlencoded\r\n");
    CppWebBrowser1->Navigate2(&vURL, TNoParam(), TNoParam(), &vPostData, &vContentType);
    }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.06.2012, 18:53
Ответы с готовыми решениями:

POST Запрос через CppWebBrowser
Собственно САБЖ, не пойму как проводить запрос через CppWebBrowser методом POST... Пишу на билдере 6 Кто знает помогите... ...

Как распечатать содержимое CppWebBrowser'a средствами Builder'a?
Уважаемые коллеги! Подскажите пожалуйста, как распечатать содержимое CppWebBrowser'a средствами Builder'a.

User-Agent, Как перехвать запрос CppWebBrowser и послать со своим конфигом???
Все мы знаем, что когда браузер посылает запрос, то он + посылает инфу о типе браузера + еще там тра - ля - ля. Вот только как сделать,...

1
0 / 0 / 1
Регистрация: 11.06.2012
Сообщений: 40
28.06.2012, 22:05
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
void WebPostData(TCppWebBrowser *CppWebBrowser, String sURL, String sPostData)
{
  BSTR bstrHeaders = NULL;
  TVariant vFlags = Variant(0);
  TVariant vTargetFrameName=Variant(0);
  TVariant vPostData=Variant(0);
  TVariant vHeaders=Variant(0);
  LPSAFEARRAY psa;
  LPCTSTR cszPostData = sPostData.c_str();
  UINT cElems = lstrlen(cszPostData);
  LPSTR pPostData;
  LPVARIANT pvPostData;
 
  bstrHeaders = SysAllocString(L"Content-Type: application/x-www-form-urlencodedrn");
  if (!bstrHeaders){
    Application->MessageBox("Could not allocate bstrHeaders", "Warning", MB_OK | MB_ICONWARNING);
    return;
  }
 
  V_VT(&vHeaders) = VT_BSTR;
  V_BSTR(&vHeaders) = bstrHeaders;
 
  pvPostData = vPostData;
 
  if(pvPostData){
    VariantInit(pvPostData);
 
    psa = SafeArrayCreateVector(VT_UI1, 0, cElems);
    if(!psa){
      return;
    }
 
    SafeArrayAccessData(psa, (LPVOID*)&pPostData);
    memcpy(pPostData, cszPostData, cElems);
    SafeArrayUnaccessData(psa);
 
    V_VT(pvPostData) = VT_ARRAY | VT_UI1;
    V_ARRAY(pvPostData) = psa;
  }
 
   CppWebBrowser->Navigate((TVariant)sURL, &vFlags, &vTargetFrameName, &vPostData, &vHeaders);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.06.2012, 22:05
Помогаю со студенческими работами здесь

Отправить Post-запрос средствами XNet
Доброго суток всем. Проблема с отправлением post-запроса, средствами xNet. Нужно отправить заполненную форму, в формате: ...

Отправить Post запрос средствами JavaScript
Собственно сабж. Пробовал сделать втупую: <form id = 'manForm' action = 'man.php' method = 'post' hidden = 'true'> <input...

POST запрос средствами java без php
Можно ли отправить какой-либо POST запрос другому сайту исключительно средствами javascript без применения php?

Не получается осуществить POST запрос, средствами jquery
В общем ситуация такая, делаю такой POST запрос: $.post('script.php',{ }, get_user_list ); function...

Post-посылка средствами ASP
Есть ли какие ли бо средства, ActiveX DLL и тд, с помощью которых я могу послать данные по методу POST на определенный ASP скрипт. То есть:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru