Skip to content

IConnector ru

Leksiqq edited this page Dec 29, 2023 · 7 revisions

Интерфейс IConnector

Интерфейс объекта, предоставленного Runner, посредством которого осуществляется авторизованные запросы к серверу. Авторизованные в данном контексте означает следующее. Хотя сервер прослушивает TCP порт, назначаемый случайным образом, доступ к нему возможен только с помощью объекта IConnector, либо с помощью веб-браузера по специальной ссылке, созданной с помощью объекта IConnector (см. ниже). На остальные запросы сервер вернёт код 403 Forbidden.

Свойства

  • bool IsConnected { get; } - информирует, соединён ли коннектор с сервером.
  • bool RedirectConsoleOut { get; set; } - задаёт, следует ли перенаправлять консольный вывод из обработчика запроса. При значении true вызовы Console.Write(...) и Console.WriteLine(...) будут выведены на консоль выполняющегося приложения, в противном случае - нет. По умолчанию указанное перенаправление отключено.

Методы

  • TextReader Get(string path, object? parameter = null, Action<HttpContext>? onRequest = null) - осуществляет GET запрос к серверу по маршруту path с необязательными параметрами: объектом parameter, который может быть использован на стороне сервера во время обработки запроса:
object? userParameter = context.RequestServices.GetRequiredService<RequestParameter>().Parameter;

и делегатом onRequest, который вызывается непосредственно перед обработкой запроса встроенным сервером, принимает конткст запроса.

  • HttpResponseMessage Send(HttpRequestMessage request, object? parameter = null, Action<HttpContext>? onRequest = null) - аналогичен методу HttpResponseMessage Send(HttpRequestMessage request) класса System.Net.Http.HttpClient, кроме того, так же, как выше можно передать пользовательский объект parameter и делегат onRequest.
  • string GetLink(string path, object? parameter = null, Action<HttpContext>? onRequest = null) - возвращает авторизованную ссылку для доступа по маршруту path без помощи коннектора, например, обычным веб-браузером. Важно, что инструмент доступа должен поддерживать обработку cookie и кода ответа 307 Temporary Redirect! Так же, как выше, можно передать пользовательский объект parameter, который так же доступен на сервере (с той разницей, что он доступен всё время сессии во время любого запроса, если находится в области видимости на стороне, осуществившей вызов GetLink(...)) и делегат onRequest, который выполняется всё время сессии перед каждым запросом.
  • void ClearLink(string link) - прекращает доступ по указанной ссылке, ранее созданной вызовом метода GetLink(...) и освобождает занятую для этого память.

Раньше: (Runner) Начало: (Обзор) Дальше: (RequestParameter)