Skip to content

API UO HTTP_Get uk

Codex edited this page Oct 3, 2026 · 1 revision

UO.HTTP_Get

Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

UO.HTTP_Get · UO.HTTP_Post · UO.HTTP_Body · UO.HTTP_Header

ClassicUO • Runtime API

Завантажує налаштування або файл через HTTP/HTTPS; не запускає завантажений код і не керує входом у гру.

Точний синтаксис

UO.HTTP_Get(URL:Any) -> Unit
UO.HTTP_Get(URL:Any, LStream:Any) -> Unit

Параметри

  • URL — Обов’язкова String: повний http:// або https:// URL. Використовується мережа процесу, а не ігровий проксі профілю. З’єднання з грою не потрібне.
  • LStream — Необов’язковий MemoryStream() або File(path); пропуск, 0 чи Nothing означають текст через HTTP_Body(). Потік повністю замінюється байтами, MemoryStream повертається на позицію 0. File перезаписує файл; батьківська папка має існувати. Інший тип відхиляється до запиту.

Повертає

Unit: значення немає; не Boolean, ID чи кількість байтів. Текст читайте HTTP_Body(), байти — з потоку.

Поведінка

  • Буфер належить runtime цього скрипта. Його наступний GET/POST замінює відповідь; інші скрипти її не змінюють. У профілі вона не зберігається. Потрібні старі дані копіюйте в змінні.
  • GET/POST очікують у потоці скрипта: 20 секунд на запит разом із читанням тіла. Стоп скасовує очікування; Body/Header не очікують. Навіть File спочатку завантажує все тіло в пам’ять.
  • Кодування береться з charset; відсутнє/невідоме — UTF-8. Читаються й відповіді 4xx/5xx. Мережева помилка/таймаут виводять помилку та очищують тіло й заголовки; Try/Catch не замінює перевірки відповіді. Скасування поширюється далі. Локальні помилки запису/аргументів можна перехопити.
  • GET без потоку зберігає текст і заголовки; з потоком — байти та заголовки, а HTTP_Body очищує. Порожній результат/мережева помилка теж очищують потік: важливий файл спочатку завантажуйте в пам’ять і перевіряйте.

Внутрішні функції: від виклику до результату

Це етапи клієнта, не додаткові команди. GET/POST викликають HttpRequest; Body/Header лише читають результат свого runtime.

1. ExecuteClientApiCompatibility

GET без потоку зберігає текст і заголовки; з потоком — байти та заголовки, а HTTP_Body очищує. Порожній результат/мережева помилка теж очищують потік: важливий файл спочатку завантажуйте в пам’ять і перевіряйте.

Unit: значення немає; не Boolean, ID чи кількість байтів. Текст читайте HTTP_Body(), байти — з потоку.

Код проєкту: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; функція ExecuteClientApiCompatibility.

2. HttpRequest

GET/POST очікують у потоці скрипта: 20 секунд на запит разом із читанням тіла. Стоп скасовує очікування; Body/Header не очікують. Навіть File спочатку завантажує все тіло в пам’ять.

Кодування береться з charset; відсутнє/невідоме — UTF-8. Читаються й відповіді 4xx/5xx. Мережева помилка/таймаут виводять помилку та очищують тіло й заголовки; Try/Catch не замінює перевірки відповіді. Скасування поширюється далі. Локальні помилки запису/аргументів можна перехопити.

Код проєкту: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; функція HttpRequest.

Це етапи клієнта, не додаткові команди. GET/POST викликають HttpRequest; Body/Header лише читають результат свого runtime.

Приклади

Прочитати поріг мани

# Прочитати поріг мани
#
# Завантажує налаштування або файл через HTTP/HTTPS; не запускає завантажений код і не керує
# входом у гру.
#
# Unit: значення немає; не Boolean, ID чи кількість байтів. Текст читайте HTTP_Body(), байти — з
# потоку.

SUB Main()
    # Очікується об’єкт JSON minMana: число 0..100 перетворюється на Integer, інакше 30. Це
    # налаштування, не поточна мана.
    # example.com не надає показаного сервісу. Замініть URL власним: приклад робить справжній
    # HTTP-запит, без ігрових дій.

    UO.HTTP_Get("https://example.com/basic-config.json")
    Try
        Dim config = JsonParse(UO.HTTP_Body())
        Dim threshold = config.Get("minMana", 30)
        If IsNumeric(threshold) Then
            If threshold >= 0 AndAlso threshold <= 100 Then
                Return CInt(threshold)
            End If
        End If
    Catch problem
    End Try
    Return 30
END SUB

Пояснення параметрів і виконання:

  • Очікується об’єкт JSON minMana: число 0..100 перетворюється на Integer, інакше 30. Це налаштування, не поточна мана.
  • example.com не надає показаного сервісу. Замініть URL власним: приклад робить справжній HTTP-запит, без ігрових дій.

Зберегти непорожні байти

# Зберегти непорожні байти
#
# Завантажує налаштування або файл через HTTP/HTTPS; не запускає завантажений код і не керує
# входом у гру.
#
# Unit: значення немає; не Boolean, ID чи кількість байтів. Текст читайте HTTP_Body(), байти — з
# потоку.

SUB Main()
    # MemoryStream отримує байти. Лише непорожні дані перезаписують download.bin у робочій папці;
    # True не підтверджує формат. Додайте перевірку вмісту.
    # example.com не надає показаного сервісу. Замініть URL власним: приклад робить справжній
    # HTTP-запит, без ігрових дій.

    Dim data = MemoryStream()
    Using data
        UO.HTTP_Get("https://example.com/route-data.bin", data)
        If data.Length() = 0 Then
            Return False
        End If
        data.SaveToFile("download.bin")
        Return True
    End Using
END SUB

Пояснення параметрів і виконання:

  • MemoryStream отримує байти. Лише непорожні дані перезаписують download.bin у робочій папці; True не підтверджує формат. Додайте перевірку вмісту.
  • example.com не надає показаного сервісу. Замініть URL власним: приклад робить справжній HTTP-запит, без ігрових дій.

Пряме збереження файлу

# Пряме збереження файлу
#
# Завантажує налаштування або файл через HTTP/HTTPS; не запускає завантажений код і не керує
# входом у гру.
#
# Unit: значення немає; не Boolean, ID чи кількість байтів. Текст читайте HTTP_Body(), байти — з
# потоку.

SUB Main()
    # http-download.bin у робочій папці перезаписується навіть порожніми даними. Using звільняє
    # об’єкт; повертаються заголовки.
    # example.com не надає показаного сервісу. Замініть URL власним: приклад робить справжній
    # HTTP-запит, без ігрових дій.

    Dim output = File("http-download.bin")
    Using output
        UO.HTTP_Get("https://example.com/route-data.bin", output)
    End Using
    Return UO.HTTP_Header()
END SUB

Пояснення параметрів і виконання:

  • http-download.bin у робочій папці перезаписується навіть порожніми даними. Using звільняє об’єкт; повертаються заголовки.
  • example.com не надає показаного сервісу. Замініть URL власним: приклад робить справжній HTTP-запит, без ігрових дій.

Clone this wiki locally