-
Notifications
You must be signed in to change notification settings - Fork 0
API UO HTTP_Post uk
Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
UO.HTTP_Get · UO.HTTP_Post · UO.HTTP_Body · UO.HTTP_Header
ClassicUO • Runtime API
Надсилає текст вашому HTTP-сервісу методом POST і повертає відповідь. Це не готова інтеграція Telegram/Discord: їхні протоколи та авторизація потребують окремої підтримки.
UO.HTTP_Post(URL:Any, PostData:Any) -> Any
-
URL— Обов’язкова String: повний http:// або https:// URL. Використовується мережа процесу, а не ігровий проксі профілю. З’єднання з грою не потрібне. -
PostData— Обов’язковий текст тіла: UTF-8, Content-Type: text/plain; charset=utf-8. Автоматичного кодування форми чи application/json немає. JsonStringify створює лише текст; ваш сервіс має приймати JSON як text/plain. Довільні заголовки не налаштовуються.
String: текст відповіді та нове значення HTTP_Body(). Не Boolean і не HTTP-код; порожній/непорожній текст не доводить успіху.
- Буфер належить runtime цього скрипта. Його наступний GET/POST замінює відповідь; інші скрипти її не змінюють. У профілі вона не зберігається. Потрібні старі дані копіюйте в змінні.
- GET/POST очікують у потоці скрипта: 20 секунд на запит разом із читанням тіла. Стоп скасовує очікування; Body/Header не очікують. Навіть File спочатку завантажує все тіло в пам’ять.
- Кодування береться з charset; відсутнє/невідоме — UTF-8. Читаються й відповіді 4xx/5xx. Мережева помилка/таймаут виводять помилку та очищують тіло й заголовки; Try/Catch не замінює перевірки відповіді. Скасування поширюється далі. Локальні помилки запису/аргументів можна перехопити.
- POST зберігає тіло й заголовки та повертає тіло. Не повторюйте дію лише через порожню відповідь: сервер міг її виконати. accepted/status — угода вашого сервісу.
Це етапи клієнта, не додаткові команди. GET/POST викликають HttpRequest; Body/Header лише читають результат свого runtime.
POST зберігає тіло й заголовки та повертає тіло. Не повторюйте дію лише через порожню відповідь: сервер міг її виконати. accepted/status — угода вашого сервісу.
String: текст відповіді та нове значення HTTP_Body(). Не Boolean і не HTTP-код; порожній/непорожній текст не доводить успіху.
Код проєкту: 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-сервісу методом POST і повертає відповідь. Це не готова інтеграція
# Telegram/Discord: їхні протоколи та авторизація потребують окремої підтримки.
#
# String: текст відповіді та нове значення HTTP_Body(). Не Boolean і не HTTP-код;
# порожній/непорожній текст не доводить успіху.
SUB Main()
# Route stopped має отримати accepted за угодою з вашим сервісом; True перевіряє цей текст, а не
# HTTP-код.
# example.com не надає показаного сервісу. Замініть URL власним: приклад робить справжній
# HTTP-запит, без ігрових дій.
Dim reply = UO.HTTP_Post("https://example.com/basic-event", "Route stopped")
Return Trim(reply) = "accepted"
END SUBПояснення параметрів і виконання:
- Route stopped має отримати accepted за угодою з вашим сервісом; True перевіряє цей текст, а не HTTP-код.
- example.com не надає показаного сервісу. Замініть URL власним: приклад робить справжній HTTP-запит, без ігрових дій.
# Структурований звіт
#
# Надсилає текст вашому HTTP-сервісу методом POST і повертає відповідь. Це не готова інтеграція
# Telegram/Discord: їхні протоколи та авторизація потребують окремої підтримки.
#
# String: текст відповіді та нове значення HTTP_Body(). Не Boolean і не HTTP-код;
# порожній/непорожній текст не доводить успіху.
SUB Main()
# JsonStringify екранує новий рядок. Тип залишається text/plain. JSON-відповідь дає status,
# unknown без поля або invalid response при помилці.
# example.com не надає показаного сервісу. Замініть URL власним: приклад робить справжній
# HTTP-запит, без ігрових дій.
Dim report = Dictionary()
report["event"] = "route-stopped"
report["text"] = "line one" & Chr(10) & "line two"
Dim reply = UO.HTTP_Post("https://example.com/basic-report", JsonStringify(report))
Try
Dim result = JsonParse(reply)
Return result.Get("status", "unknown")
Catch problem
Return "invalid response"
End Try
END SUBПояснення параметрів і виконання:
- JsonStringify екранує новий рядок. Тип залишається text/plain. JSON-відповідь дає status, unknown без поля або invalid response при помилці.
- example.com не надає показаного сервісу. Замініть URL власним: приклад робить справжній HTTP-запит, без ігрових дій.
# Зберегти першу відповідь
#
# Надсилає текст вашому HTTP-сервісу методом POST і повертає відповідь. Це не готова інтеграція
# Telegram/Discord: їхні протоколи та авторизація потребують окремої підтримки.
#
# String: текст відповіді та нове значення HTTP_Body(). Не Boolean і не HTTP-код;
# порожній/непорожній текст не доводить успіху.
SUB Main()
# firstReply/firstHeaders зберігають POST; наступний GET змінює лише внутрішні буфери.
# example.com не надає показаного сервісу. Замініть URL власним: приклад робить справжній
# HTTP-запит, без ігрових дій.
Dim firstReply = UO.HTTP_Post("https://example.com/basic-event", "Route stopped")
Dim firstHeaders = UO.HTTP_Header()
UO.HTTP_Get("https://example.com/basic-status")
Return firstReply & "|" & firstHeaders
END SUBПояснення параметрів і виконання:
- firstReply/firstHeaders зберігають POST; наступний GET змінює лише внутрішні буфери.
- example.com не надає показаного сервісу. Замініть URL власним: приклад робить справжній HTTP-запит, без ігрових дій.
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь