CdpHar
class · пространство имён z3n7 · исходник Traffic/CdpHar.cs
public sealed class CdpHar : IDisposable
Запись HAR, которая общается с браузером инстанса через его собственный DevTools endpoint (браузер пишет порт в <user-data-dir>\DevToolsActivePort). Не зависит от Tab.GetTraffic. Записывает только то, что происходит после Start().
Свойства
Count
public int Count { get; }
Число записанных записей.
DevToolsPort
public int DevToolsPort { get; }
Порт DevTools браузера.
IsAlive
public bool IsAlive { get; }
Открыто ли соединение с DevTools.
LastError
public string LastError { get; }
Последняя ошибка фонового цикла приёма или null.
Методы
Clear
public void Clear()
Забывает все записанные записи.
Connect
public static CdpHar Connect(int devToolsPort)
Запись, привязанная к явно заданному порту DevTools (не регистрируется для инстанса).
Dispose
public void Dispose()
Закрывает соединение с DevTools.
For
public static CdpHar For(Instance instance)
Работающая запись для этого инстанса или null.
ResolveDevToolsPort
public static int ResolveDevToolsPort(Instance instance)
Находит порт DevTools браузера инстанса по файлам DevToolsActivePort: в папке профиля инстанса, в папке браузера ProjectMaker и в Trash\Profiles\* ZennoPoster. Выигрывает собственный порт профиля, если он живой; иначе единственный живой кандидат; иначе тот, у которого URL страницы равен ActiveTab.URL.
Возвращает: Порт. Бросает InvalidOperationException, если живого браузера нет или подходящих несколько.
Save
public int Save(string path, string urlRegex = null, int waitBodiesMs = 3000)
Записывает записанный трафик в файл HAR 1.2 (недостающие папки создаются, существующий файл заменяется).
| Параметр | Описание |
|---|---|
path |
Целевой файл. |
urlRegex |
Регулярное выражение без учёта регистра, которому должен соответствовать URL; null оставляет всё. |
waitBodiesMs |
Сколько ждать тела ответов, которые ещё загружаются. |
Возвращает: Число записанных записей.
Start
public static CdpHar Start(Instance instance)
Запускает запись для этого инстанса (или возвращает уже работающую).
Stop
public static void Stop(Instance instance)
Останавливает и забывает запись этого инстанса, если она есть.
Поля
CommandTimeoutMs
public int CommandTimeoutMs;
Таймаут на подключение и на каждую команду DevTools, мс.
MaxBodyBytes
public long MaxBodyBytes;
Тела ответов больше этого размера (в закодированном виде) не загружаются.
MaxEntries
public int MaxEntries;
Сколько записей хранить; сверх этого самые старые отбрасываются.