CEF Sharp 3 извлечение заголовков ответа

Поэтому я все еще пытаюсь найти функцию (если она есть) в Cefsharp 3, где можно проверить заголовки из ответа на запрос. В случае, если его нет, это потому, что его нет в CEF 3? и или, с чего мне начать искать, если я это реализую?


person Kmtdk    schedule 08.12.2014    source источник


Ответы (2)


Этой функции еще нет в CEF 3. Вот нерешенная проблема: https://code.google.com/p/chromiumembedded/issues/detail?id=515

Отмечено обходное решение...

В настоящее время нет отличного способа фильтровать содержимое ответа с помощью CEF3. Вы можете использовать CefResourceHandler через CefRequestHandler::GetResourceHandler и самостоятельно выполнить запрос/возврат содержимого ответа, используя CefURLRequest.

... однако этот обходной путь невозможен в CefSharp 3, потому что CefURLRequestClient и друзья не реализованы.

На этом этапе, в зависимости от того, насколько вы знакомы с C++, вы можете рассмотреть:

  • участие в проекте (C++) CEF и реализация функции фильтрации ответов - все это будет C++.
  • внесение C#-оболочек CefURLRequestClient и его друзей в проект CefSharp, который представляет собой комбинацию легкого C++ и C#.

Вам также может быть интересно, что есть способ получить заголовки HTTP в JavaScript, если вы сами инициировали запрос с помощью AJAX: Доступ к заголовкам HTTP веб-страницы в JavaScript

Такое решение можно легко реализовать с помощью CefSharp 3, внедрив JavaScript на текущую страницу.

person Yoshi    schedule 10.12.2014

Альтернативой, которая обеспечивает больший контроль, является использование обработчиков схем (это чище IMO).

Добавьте обработчик схемы, который перехватывает загрузку вашего ресурса:

CEF.RegisterScheme("ascheme", new HandlerFactory());

затем (после того, как вы создали тривиальную фабрику или 2) у вас есть это переопределение:

public bool ProcessRequestAsync(IRequest request, ISchemeHandlerResponse response, OnRequestCompletedHandler requestCompletedCallback)

Ответ содержит заголовки/MimeType и поток, чтобы обеспечить больший контроль. Надеюсь, это поможет.

person penderi    schedule 23.01.2015
comment
Использование обработчика схемы перехватывает загрузку до отправки запроса, поэтому нет возможности получить исходный ответ — вы должны отправить запрос и вернуть ответ вручную, используя .NET WebClient/WebRequest, но у этого есть недостатки (файлы cookie не передается, другой пользовательский агент и т. д.). - person Yoshi; 09.04.2015
comment
Объект запроса в приведенном выше методе позволяет получить доступ к полному запросу, а также к заголовкам. Я думал, что вопрос задан. - person penderi; 09.04.2015
comment
Вместо этого ему нужны заголовки из ответа. - person Yoshi; 10.04.2015