reckfellENGINE

HttpRequest

Асинхронный HTTP-запрос с сигналом завершения.

На этой странице
class HttpRequestReckfellSharpНаследует Entity

HttpRequest должен находиться в EntityTree. Один экземпляр обслуживает один запрос одновременно. Error из Request/RequestRaw описывает запуск; RequestCompleted сообщает отдельные result, responseCode, headers и body.

Result.Success означает успешную передачу, а не обязательно HTTP 2xx, корректный JSON или выполненную операцию приложения. Проверяйте все нужные уровни. Ограничивайте Timeout/BodySizeLimit и задавайте политику перенаправлений. CancelRequest не выдаёт завершение отмены автоматически; согласуйте время жизни UI и владельца запроса.

Рабочий пример.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

HttpRequestКонструктор
# HttpRequest
C#
public HttpRequest();

Свойства9

AcceptGZipСвойство
# AcceptGZip
C#
public bool AcceptGZip { get; set; }

Запрашивает gzip/deflate, если Accept-Encoding не указан, и включает обработку соответствующего Content-Encoding ответа. Лимит распакованных данных остаётся необходимым.

AppendToDownloadFileСвойство
# AppendToDownloadFile
C#
public bool AppendToDownloadFile { get; set; }

Разрешает продолжение записи при подходящем ответе Partial Content. Не заменяет проверку Range/Content-Range и идентичности уже скачанного файла.

BodySizeLimitСвойство
# BodySizeLimit
C#
public int BodySizeLimit { get; set; }

Лимит тела в байтах; -1 отключает лимит. При автоматической распаковке ограничивается также итоговое распакованное тело. Для внешних ответов задавайте явный бюджет.

DownloadChunkSizeСвойство
# DownloadChunkSize
C#
public int DownloadChunkSize { get; set; }

Размер используемого буфера и максимальное количество байтов для чтения за одну итерацию. См. HttpClient.ReadChunkSize. Установите меньшее значение (например, 4096 для 4 КиБ) при загрузке небольших файлов, чтобы уменьшить использование памяти за счет скорости загрузки.

DownloadFileСвойство
# DownloadFile
C#
public string DownloadFile { get; set; }

Путь записи тела ответа вместо хранения его в body сигнала. Успешная запись не подтверждает HTTP 2xx или пригодность содержимого; сначала используйте временный файл.

KeepPartialDownloadСвойство
# KeepPartialDownload
C#
public bool KeepPartialDownload { get; set; }

Сохраняет незавершённый файл при остановке запроса. Частичный файл не считается готовым ресурсом; проверяйте длину/содержимое перед использованием.

MaxRedirectsСвойство
# MaxRedirects
C#
public int MaxRedirects { get; set; }

Предел автоматических перенаправлений; 0 запрещает их, -1 отключает предел. Проверяйте адрес, метод и заголовки при переходах.

TimeoutСвойство
# Timeout
C#
public double Timeout { get; set; }

Срок ожидания в секундах; 0 отключает тайм-аут. Встроенный Timer игнорирует TimeScale, однако его обработка зависит от EntityTree/паузы.

UseThreadsСвойство
# UseThreads
C#
public bool UseThreads { get; set; }

Включает внутренний рабочий поток, если сборка его поддерживает. Не делает ваши обработчики или доступ к EntityTree автоматически потокобезопасными.

Методы29

CancelRequestvoid
# CancelRequest
C#
public void CancelRequest();

Останавливает текущий запрос; сам по себе не выдаёт RequestCompleted для отмены. При файловой загрузке очистка зависит от завершённости и KeepPartialDownload.

GetBodySizeint
# GetBodySize
C#
public int GetBodySize();

Возвращает длину тела запроса. Примечание: Некоторые веб-серверы могут не отправлять длину тела. В этом случае возвращаемое значение будет -1. При использовании кодирования передачи по частям длина тела также будет -1.

Возвращает int
GetBodySizeLimitint
# GetBodySizeLimit
C#
public int GetBodySizeLimit();
Возвращает int
GetDownloadChunkSizeint
# GetDownloadChunkSize
C#
public int GetDownloadChunkSize();
Возвращает int
GetDownloadFilestring
# GetDownloadFile
C#
public string GetDownloadFile();
Возвращает string
GetDownloadedBytesint
# GetDownloadedBytes
C#
public int GetDownloadedBytes();

Возвращает количество байтов HTTPRequest скачаны.

Возвращает int
GetHttpClientStatusHttpClient.Status
# GetHttpClientStatus
C#
public HttpClient.Status GetHttpClientStatus();

Возвращает текущий статус базового HttpClient.

Возвращает HttpClient.Status
GetMaxRedirectsint
# GetMaxRedirects
C#
public int GetMaxRedirects();
Возвращает int
GetTimeoutdouble
# GetTimeout
C#
public double GetTimeout();
Возвращает double
IsAcceptingGZipbool
# IsAcceptingGZip
C#
public bool IsAcceptingGZip();
Возвращает bool
IsAppendingToDownloadFilebool
# IsAppendingToDownloadFile
C#
public bool IsAppendingToDownloadFile();
Возвращает bool
IsKeepingPartialDownloadbool
# IsKeepingPartialDownload
C#
public bool IsKeepingPartialDownload();
Возвращает bool
IsUsingThreadsbool
# IsUsingThreads
C#
public bool IsUsingThreads();
Возвращает bool
Request2 перегрузки
# Request · 1/2
C#
public Error Request(string url, ReadOnlySpan<string> customHeaders, HttpClient.Method method, string requestData);

Запускает HTTP-запрос; строковое тело кодируется в UTF-8. Требует дерево и свободный экземпляр. Error.Ok не означает полученный HTTP 2xx: результат проверяется в RequestCompleted.

Параметры
ИмяТипПо умолчанию
urlstring—
customHeadersReadOnlySpan<string>—
methodHttpClient.Method—
requestDatastring—
Возвращает Error
# Request · 2/2
C#
public Error Request(string url, string[] customHeaders = null, HttpClient.Method method = HttpClient.Method.Get, string requestData = "");

Запускает HTTP-запрос; строковое тело кодируется в UTF-8. Требует дерево и свободный экземпляр. Error.Ok не означает полученный HTTP 2xx: результат проверяется в RequestCompleted.

Параметры
ИмяТипПо умолчанию
urlstring—
customHeadersstring[]null
methodHttpClient.MethodHttpClient.Method.Get
requestDatastring""
customHeaders

Если параметр не имеет значения, то значение по умолчанию: Array.Empty<string>().

Возвращает Error
RequestRaw2 перегрузки
# RequestRaw · 1/2
C#
public Error RequestRaw(string url, ReadOnlySpan<string> customHeaders, HttpClient.Method method, ReadOnlySpan<byte> requestDataRaw);

Отправляет точные байты тела. Метод и Content-Type должны соответствовать API. При неоднозначности перегрузок задайте типы массивов явно.

Параметры
ИмяТипПо умолчанию
urlstring—
customHeadersReadOnlySpan<string>—
methodHttpClient.Method—
requestDataRawReadOnlySpan<byte>—
Возвращает Error
# RequestRaw · 2/2
C#
public Error RequestRaw(string url, string[] customHeaders = null, HttpClient.Method method = HttpClient.Method.Get, byte[] requestDataRaw = null);

Отправляет точные байты тела. Метод и Content-Type должны соответствовать API. При неоднозначности перегрузок задайте типы массивов явно.

Параметры
ИмяТипПо умолчанию
urlstring—
customHeadersstring[]null
methodHttpClient.MethodHttpClient.Method.Get
requestDataRawbyte[]null
customHeaders

Если параметр не имеет значения, то значение по умолчанию: Array.Empty<string>().

requestDataRaw

Если параметр не имеет значения, то значение по умолчанию: Array.Empty<byte>().

Возвращает Error
SetAcceptGZipvoid
# SetAcceptGZip
C#
public void SetAcceptGZip(bool enable);
Параметры
ИмяТипПо умолчанию
enablebool—
SetAppendToDownloadFilevoid
# SetAppendToDownloadFile
C#
public void SetAppendToDownloadFile(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetBodySizeLimitvoid
# SetBodySizeLimit
C#
public void SetBodySizeLimit(int bytes);
Параметры
ИмяТипПо умолчанию
bytesint—
SetDownloadChunkSizevoid
# SetDownloadChunkSize
C#
public void SetDownloadChunkSize(int chunkSize);
Параметры
ИмяТипПо умолчанию
chunkSizeint—
SetDownloadFilevoid
# SetDownloadFile
C#
public void SetDownloadFile(string path);
Параметры
ИмяТипПо умолчанию
pathstring—
SetHttpProxyvoid
# SetHttpProxy
C#
public void SetHttpProxy(string host, int port);

Устанавливает прокси-сервер для HTTP-запросов. Прокси-сервер не установлен, если host пуст или port равен -1.

Параметры
ИмяТипПо умолчанию
hoststring—
portint—
SetHttpsProxyvoid
# SetHttpsProxy
C#
public void SetHttpsProxy(string host, int port);

Устанавливает прокси-сервер для HTTPS-запросов. Прокси-сервер не установлен, если host пуст или port равен -1.

Параметры
ИмяТипПо умолчанию
hoststring—
portint—
SetKeepPartialDownloadvoid
# SetKeepPartialDownload
C#
public void SetKeepPartialDownload(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetMaxRedirectsvoid
# SetMaxRedirects
C#
public void SetMaxRedirects(int amount);
Параметры
ИмяТипПо умолчанию
amountint—
SetTimeoutvoid
# SetTimeout
C#
public void SetTimeout(double timeout);
Параметры
ИмяТипПо умолчанию
timeoutdouble—
SetTlsOptionsvoid
# SetTlsOptions
C#
public void SetTlsOptions(TlsOptions clientOptions);

Задаёт клиентские параметры для HTTPS. Используйте проверяющий Client; корректно загрузите собственный CA до запуска запроса.

Параметры
ИмяТипПо умолчанию
clientOptionsTlsOptions—
SetUseThreadsvoid
# SetUseThreads
C#
public void SetUseThreads(bool enable);
Параметры
ИмяТипПо умолчанию
enablebool—

Сигналы и события1

RequestCompletedСобытие
# RequestCompleted
C#
public event HttpRequest.RequestCompletedEventHandler RequestCompleted;

Сообщает результат передачи, HTTP-код, заголовки и байты тела. Result.Success возможен вместе с 404. При DownloadFile тело сохраняется в файл, а body остаётся пустым.

Параметры обработчика
ИмяТипПо умолчанию
resultlong—
responseCodelong—
headersstring[]—
bodybyte[]—

HttpRequest.Result

ЗначениеОписание
BodyDecompressFailed = 8

Запрос не выполнен из-за ошибки при распаковке тела ответа. Возможные причины включают неподдерживаемый или неправильный формат сжатия, поврежденные данные или неполную передачу.

BodySizeLimitExceeded = 7

Запрос превысил максимальный размер, см. HttpRequest.BodySizeLimit.

CantConnect = 2

Запрос не удался при подключении.

CantResolve = 3

Запрос не удалось разрешить.

ChunkedBodySizeMismatch = 1

Запрос не выполнен из-за несоответствия между ожидаемым и фактическим размером фрагментированного тела во время передачи. Возможные причины включают сетевые ошибки, неправильную конфигурацию сервера или проблемы с фрагментированным кодированием.

ConnectionError = 4

Запрос не выполнен из-за ошибки соединения (чтение/запись).

DownloadFileCantOpen = 10

HTTPRequest не смог открыть загружаемый файл.

DownloadFileWriteError = 11

HTTPRequest не смог выполнить запись в загружаемый файл.

NoResponse = 6

Запрос не получил ответа (пока что).

RedirectLimitReached = 12

Запрос достиг максимального предела перенаправления, см. HttpRequest.MaxRedirects.

RequestFailed = 9

Запрос не выполнен (в настоящее время не используется).

Success = 0

Запрос успешен.

Timeout = 13

Запрос не выполнен из-за тайм-аута. Если вы ожидаете, что запросы будут выполняться долго, попробуйте увеличить значение HttpRequest.Timeout или установить его на 0.0, чтобы полностью убрать тайм-аут.

TlsHandshakeError = 5

Запрос не выполнен при установлении связи TLS.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.