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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.07.2015, 15:16   #21
vipok72
Пользователь
 
Регистрация: 26.07.2015
Сообщений: 59
По умолчанию

Цитата:
Сообщение от Krasiosoft Посмотреть сообщение
При отладке стать на название переменной и нажать Crtl+F5.
поставил эту самую бряку на строчку присвоения new этого,проверил - значение - nil, а после присвоения еще бряку поставил, появилось 2 значения Request, оба значения равны TCefRequestRef($301BA8) as ICefRequest

Согласно этому посту http://www.projetoacbr.com.br/forum/...&comment=99015 должно быть написано все по другому:
Код:
  req := TCefRequestRef.New;
  req.SetUrl( 'http://example.com/');
  req.SetMethod ( 'POST');
  req.SetFlags(WUR_FLAG_ALLOW_CACHED_CREDENTIALS + WUR_FLAG_ALLOW_COOKIES);
  req.SetPostData (data);
сейчас испробую

Последний раз редактировалось Stilet; 26.07.2015 в 17:54.
vipok72 вне форума Ответить с цитированием
Старый 26.07.2015, 15:51   #22
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Очень странный подход для установки флагов. Возможно, там нужно будет записывать так:
Код:
req.SetFlags(WUR_FLAG_ALLOW_CACHED_CREDENTIALS or WUR_FLAG_ALLOW_COOKIES);
Надо найти документацию об этом классе, чтоб не гадать.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Старый 26.07.2015, 15:57   #23
vipok72
Пользователь
 
Регистрация: 26.07.2015
Сообщений: 59
По умолчанию

Цитата:
Сообщение от Krasiosoft Посмотреть сообщение
Очень странный подход для установки флагов. Возможно, там нужно будет записывать так:
Код:
req.SetFlags(WUR_FLAG_ALLOW_CACHED_CREDENTIALS or WUR_FLAG_ALLOW_COOKIES);
Надо найти документацию об этом классе, чтоб не гадать.
Документации по этому компоненту почти нет....(( В ceflib.pas написано:
Код:
  TCefRequestRef = class(TCefBaseRef, ICefRequest)
  protected
    function IsReadOnly: Boolean;
    function GetUrl: ustring;
    function GetMethod: ustring;
    function GetPostData: ICefPostData;
    procedure GetHeaderMap(const HeaderMap: ICefStringMultimap);
    procedure SetUrl(const value: ustring);
    procedure SetMethod(const value: ustring);
    procedure SetPostData(const value: ICefPostData);
    procedure SetHeaderMap(const HeaderMap: ICefStringMultimap);
    function GetFlags: TCefUrlRequestFlags;
    procedure SetFlags(flags: TCefUrlRequestFlags);
    function GetFirstPartyForCookies: ustring;
    procedure SetFirstPartyForCookies(const url: ustring);
    procedure Assign(const url, method: ustring;
      const postData: ICefPostData; const headerMap: ICefStringMultimap);
  public
    class function UnWrap(data: Pointer): ICefRequest;
    class function New: ICefRequest;
  end;
Код:
procedure TCefRequestRef.SetUrl(const value: ustring);
var
  v: TCefString;
begin
  v := CefString(value);
  PCefRequest(FData)^.set_url(PCefRequest(FData), @v);
end;
Код:
procedure TCefRequestRef.SetMethod(const value: ustring);
var
  v: TCefString;
begin
  v := CefString(value);
  PCefRequest(FData)^.set_method(PCefRequest(FData), @v);
end;
Код:
procedure TCefRequestRef.SetPostData(const value: ICefPostData);
begin
  if value <> nil then
    PCefRequest(FData)^.set_post_data(PCefRequest(FData), CefGetData(value));
end;
Код:
procedure TCefRequestRef.SetFlags(flags: TCefUrlRequestFlags);
begin
  PCefRequest(FData)^.set_flags(PCefRequest(FData), PByte(@flags)^);
end;

Последний раз редактировалось vipok72; 26.07.2015 в 16:02.
vipok72 вне форума Ответить с цитированием
Старый 26.07.2015, 16:02   #24
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Я не про саму функцию SetFlags, а про "+" между флагами, вместо or.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Старый 26.07.2015, 16:03   #25
vipok72
Пользователь
 
Регистрация: 26.07.2015
Сообщений: 59
По умолчанию

Цитата:
Сообщение от Krasiosoft Посмотреть сообщение
Я не про саму функцию SetFlags, а про "+" между флагами, вместо or.
Ошибки не вывело
Код:
Request.SetFlags([UR_FLAG_ALLOW_CACHED_CREDENTIALS, UR_FLAG_ALLOW_COOKIES]);
Все равно ошибка((( при отправке post запроса уже, в
Код:
form1.Chromium1.Browser.MainFrame.LoadRequest(Request);
Оппааа, этот код сработал... странно...
Код:
  MainFrame := Chromium1.Browser.GetMainFrame;
  MainFrame.LoadRequest(Req);
Ладно, учитывая то, что я нашел выход из ситуации благодаря Krasiosoft, p51x и Stilet выложу мини код который работает))
функция которая нужна
Код:
Uses  ceflib;

function TForm1.CreateField(const AValue: AnsiString): ICefPostDataElement;
begin
  Result := TCefPostDataElementRef.New;
  Result.SetToBytes(Length(AValue), PAnsiChar(AValue));
end;
Используемые переменные
Код:
  Header: ICefStringMultimap;
  Data: ICefPostData;
  Request: ICefRequest;
  MainFrame : ICefFrame;
Код:
Header := TCefStringMultimapOwn.Create;
Header.Append('Host', 'site.com');

Data := TCefPostDataRef.New;
Data.AddElement(CreateField('sessionid=2'));
Data.AddElement(CreateField('&currency=1'));

Request := TCefRequestRef.New;
Request.SetUrl('http://site.com');
Request.SetMethod ( 'POST');
Request.SetFlags([UR_FLAG_ALLOW_CACHED_CREDENTIALS, UR_FLAG_ALLOW_COOKIES]);
Request.SetPostData (Data);
Request.SetHeaderMap(Header);

try
  MainFrame := Form1.Chromium1.Browser.GetMainFrame;
  MainFrame.LoadRequest(Request);
except
end;

Последний раз редактировалось Stilet; 26.07.2015 в 17:55.
vipok72 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка post запроса drakonbc C# (си шарп) 1 24.07.2013 01:12
Отправка POST запроса Besha07 PHP 8 18.10.2012 14:28
Отправка post-запроса С# galogen13 Помощь студентам 3 22.04.2012 03:20
Отправка запроса POST CreatiK Общие вопросы .NET 4 06.12.2010 21:15
Отправка POST запроса S@fer Работа с сетью в Delphi 0 29.01.2009 13:33