-
Notifications
You must be signed in to change notification settings - Fork 0
IConnector ru
Leksiqq edited this page Dec 29, 2023
·
7 revisions
Интерфейс объекта, предоставленного 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)