-
Notifications
You must be signed in to change notification settings - Fork 0
API UO HTTP_Get uk
Русский · 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.
GET без потоку зберігає текст і заголовки; з потоком — байти та заголовки, а HTTP_Body очищує. Порожній результат/мережева помилка теж очищують потік: важливий файл спочатку завантажуйте в пам’ять і перевіряйте.
Unit: значення немає; не Boolean, ID чи кількість байтів. Текст читайте HTTP_Body(), байти — з потоку.
Код проєкту: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; функція ExecuteClientApiCompatibility.
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-запит, без ігрових дій.
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь