1 / 1 / 0
Регистрация: 04.07.2014
Сообщений: 47

TChromium (dcef3): как правильно сформировать POST запрос

28.07.2014, 13:18. Показов 16990. Ответов 67
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго здоровья!
Прошу помощи в формировании правильного POST запроса.
Известно все, что нужно отправить. Неизвестно как правильно это оформить.

Использовать надо TChromiumOCR (dcef3).

Тампердадой установлено что нужно отправить:
-Заголовки запроса:
Host, User-Agent, Accept, Accept-Language, Accept-Encoding, Content-Type, Referer, Content-Length, Origin, Cookie, Connection, Pragma, Cache-Control

-Сообщение:
sessionid=(...)&currency(...)=&subtotal= (...)&fee=(*)&total=(...)

Код такой:
Delphi
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
43
44
45
46
47
48
49
50
51
function CreateField(const AValue: AnsiString): ICefPostDataElement;
begin
 Result := TCefPostDataElementRef.New;
 Result.SetToBytes(Length(AValue), PAnsiChar(AValue));
end;
 
//*****************************************
 
procedure POST(total, fee: integer);
var
 Header: ICefStringMultimap;
 Data: ICefPostData;
 Request: ICefRequest;
 Cook: ICefCookieManager;
begin
 Request := TCefRequestRef.New;
 Request.Url := '';
 Request.Method := 'POST';
 Request.Flags:=[UR_FLAG_ALLOW_CACHED_CREDENTIALS,UR_FLAG_ALLOW_COOKIES];
 
 Header := TCefStringMultimapOwn.Create;
 Header.Append('Host', '(...)');
 Header.Append('User-Agent', '(...)');
 Header.Append('Accept', '(...)');
 Header.Append('Accept-Language', '(...)');
 Header.Append('Accept-Encoding', '(...)');
 Header.Append('Content-Type', '(...)');
 Header.Append('Referer', '(...)');
 Header.Append('Content-Length', '(...)');
 Header.Append('Origin', '(...)');
 Header.Append('Connection', '(...)');
 Header.Append('Pragma', '(...)');
 Header.Append('Cache-Control', '(...)');
 
 Header.Append('Cookie',(...));
 ...
 Header.Append('Cookie',(...));
 
 Request.SetHeaderMap(Header);
 
 Data := TCefPostDataRef.New;
 Data.AddElement(CreateField('sessionid='+SessionID));
 Data.AddElement(CreateField('&currency=5'));
 Data.AddElement(CreateField('&subtotal='+inttostr(total-fee)));
 Data.AddElement(CreateField('&fee='+IntToStr(fee)));
 Data.AddElement(CreateField('&total='+IntToStr(total)));
 
 Request.PostData := Data;
 
 form1.Chromium1.Browser.MainFrame.LoadRequest(Request);
end;
Сомнения и вопросы:
- Где то видел, что в конце строки POST запроса надо добавлять "\r\n". Надо ли?
- Надо ли добавлять строку "POST http://www.site.ru HTTP/1.1\r\n"?
- Некоторые данные извлекаются из куки файлов в закодированном (utf-8) виде. Content-Type в данном запросе = "application/x-www-form-urlencoded; charset=UTF-8". В каком виде надо отправлять данные: как есть в utf-8 или декодировать в win1251?
- В коде параметр Request.Flags указывает на использование куки файлов. Нипанятна же... надо вручную прописывать заголовок "Cookie" или нет.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.07.2014, 13:18
Ответы с готовыми решениями:

Правильно сформировать POST-запрос
Доброго дня! Есть POST запрос который нормально отправляется через утилиту CURL. Вот ее вид: curl.exe -v -F "ufile=@<тут...

Получение кода страницы TChromium DCEF3
Привет, гуру. Необходимо получать код страницы, загруженной в хромиум, из главного потока приложения и из созданного мной....

Delphi 7 + TChromium (DCEF3) = Flash Player Not Working
Установил на Delphi 7 компонент TChromium, новенький DCEF3. Помимо прочих непонятных глюков: Flash Player не работает - лишь предлагает...

67
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
13.08.2014, 13:50
Студворк — интернет-сервис помощи студентам
Может а может и не быть.
А на какую кнопку ("название") нужно нажать?
0
1 / 1 / 0
Регистрация: 04.07.2014
Сообщений: 47
13.08.2014, 13:59  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Может а может и не быть.
А на какую кнопку ("название") нужно нажать?
Вы имеете ввиду кнопку покупки лота?
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
13.08.2014, 15:15
Та которая POST вызывает.

Добавлено через 47 минут
Delphi
1
2
Header.Append('Cookie',(...));
Request.SetHeaderMap(Header);
А зачем ты руками куки перевыставляешь? Да и вообще может быть нет необходимости вообще заголовки выставлять.
0
1 / 1 / 0
Регистрация: 04.07.2014
Сообщений: 47
14.08.2014, 13:56  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Та которая POST вызывает.
Заходим на страницу лота, в списке продавцов нажимаем "купить", в появившемся окне ставим галочку и нажимаем "купить". Далее посылается запрос.

Delphi
1
2
Header.Append('Cookie',(...));
Request.SetHeaderMap(Header);
Цитата Сообщение от Avazart Посмотреть сообщение
А зачем ты руками куки перевыставляешь? Да и вообще может быть нет необходимости вообще заголовки выставлять.
У Request есть свойство Flags, но хз как оно работает. Пробовал с ним и без него. Все один результат.

вот все возможные флаги:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    // Default behavior.
    //UR_FLAG_NONE                      = 0,
    // If set the cache will be skipped when handling the request.
    UR_FLAG_SKIP_CACHE,
    // If set user name, password, and cookies may be sent with the request.
    UR_FLAG_ALLOW_CACHED_CREDENTIALS,
    // If set cookies may be sent with the request and saved from the response.
    // UR_FLAG_ALLOW_CACHED_CREDENTIALS must also be set.
    UR_FLAG_ALLOW_COOKIES,
    // If set upload progress events will be generated when a request has a body.
    UR_FLAG_REPORT_UPLOAD_PROGRESS,
    // If set load timing info will be collected for the request.
    UR_FLAG_REPORT_LOAD_TIMING,
    // If set the headers sent and received for the request will be recorded.
    UR_FLAG_REPORT_RAW_HEADERS,
    // If set the CefURLRequestClient::OnDownloadData method will not be called.
    UR_FLAG_NO_DOWNLOAD_DATA,
    // If set 5XX redirect errors will be propagated to the observer instead of
    // automatically re-tried. This currently only applies for requests
    // originated in the browser process.
    UR_FLAG_NO_RETRY_ON_5XX
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
14.08.2014, 13:59
Цитата Сообщение от Алешенька Посмотреть сообщение
У Request есть свойство Flags, но хз как оно работает. Пробовал с ним и без него. Все один результат.
А при чем тут флаги.
Я пробовал авторизироваться тут на форуме, я заголовки вообще не заполнял и успешно прошло.
0
1 / 1 / 0
Регистрация: 04.07.2014
Сообщений: 47
14.08.2014, 14:09  [ТС]
Флаги управляют куками. или я не прав?
Цитата Сообщение от Avazart Посмотреть сообщение
А при чем тут флаги.
Я пробовал авторизироваться тут на форуме, я заголовки вообще не заполнял и успешно прошло.
Совсем без заголовков 400 выходит и ответ пустой.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
14.08.2014, 14:35
Цитата Сообщение от Алешенька Посмотреть сообщение
Флаги управляют куками. или я не прав?
Ну так определитесь вы хотите каждый раз руками куки вводить или что бы оно сам подхватывала куки?

Цитата Сообщение от Алешенька Посмотреть сообщение
Совсем без заголовков 400 выходит и ответ пустой.
Вы запросы сверяйте, а не спешите смотреть на конечный результат.
0
1 / 1 / 0
Регистрация: 04.07.2014
Сообщений: 47
19.08.2014, 15:07  [ТС]
Ладна. Сдаюсь. Похоже, что нет на свете человека, который знает, как это сделать. Или этот *** не хочет делиться!

Добавлено через 2 часа 14 минут
Получилось!
НАКОНЕЦ-ТО!
Всем огромное спасибо! Отдельно Avazart`у! Просто заставил все перепроверить)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.08.2014, 15:07

TChromium узнать значения POST
Как возможно, узнать\получить данные POST запроса? Простой пример.. при авторизации с помощью JS жмём кнопу и т.п. и на сайт уходя...

После закрытия программы c TChromium (dcef3) выскакивает AV
Здравствуйте. Вот такая проблема. Ставил TChromium на XE3. Прикол в том, что в аналогичном проекте в Delphi такой проблемы нет. ...

Как правильно составить запрос POST
req:='POST https://signin.ebay.com/ws/eBayISAPI.dll?SignIn HTTP/1.0'#13#10+ 'Content-Type: application/x-www-form-urlencoded'#13#10+ ...

Http POST запрос, как правильно написать
Добрый день, мне нужно отправить данные на сервер, посредством http post запросом, нужно добавить автомобиль, сам пост запрос выглядит вот...

Как правильно отправить POST запрос с массивом?
Доброго времени суток. Не могу понять, как отправить POST запросом массив на сервер, из C#. Нужно для добавления контакта в amoCRM. ...


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

Или воспользуйтесь поиском по форуму:
68
Ответ Создать тему
Опции темы

Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru