-
Notifications
You must be signed in to change notification settings - Fork 0
API UO HTTP_Header uk
Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
UO.HTTP_Get · UO.HTTP_Post · UO.HTTP_Body · UO.HTTP_Header
ClassicUO • Runtime API
Читає заголовки останньої HTTP-відповіді цього скрипта, наприклад Content-Type. Це не тіло, не заголовки запиту й не HTTP-код.
UO.HTTP_Header() -> Any
Параметрів немає.
String: рядки Ім’я: значення через CRLF, без статусного рядка HTTP. До запиту та після мережевої помилки порожній. Порядок і регістр не гарантовано; окремої команди HTTP-коду немає.
- Буфер належить runtime цього скрипта. Його наступний GET/POST замінює відповідь; інші скрипти її не змінюють. У профілі вона не зберігається. Потрібні старі дані копіюйте в змінні.
- GET/POST очікують у потоці скрипта: 20 секунд на запит разом із читанням тіла. Стоп скасовує очікування; Body/Header не очікують. Навіть File спочатку завантажує все тіло в пам’ять.
- Кодування береться з charset; відсутнє/невідоме — UTF-8. Читаються й відповіді 4xx/5xx. Мережева помилка/таймаут виводять помилку та очищують тіло й заголовки; Try/Catch не замінює перевірки відповіді. Скасування поширюється далі. Локальні помилки запису/аргументів можна перехопити.
- Header містить заголовки відповіді та вмісту, зокрема після двійкового GET. Імена порівнюйте без регістру. Content-Type не підтверджує формат даних; не запускайте їх як код.
Це етапи клієнта, не додаткові команди. GET/POST викликають HttpRequest; Body/Header лише читають результат свого runtime.
Header містить заголовки відповіді та вмісту, зокрема після двійкового GET. Імена порівнюйте без регістру. Content-Type не підтверджує формат даних; не запускайте їх як код.
String: рядки Ім’я: значення через CRLF, без статусного рядка HTTP. До запиту та після мережевої помилки порожній. Порядок і регістр не гарантовано; окремої команди HTTP-коду немає.
Код проєкту: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; функція ExecuteClientApiCompatibility.
Це етапи клієнта, не додаткові команди. GET/POST викликають HttpRequest; Body/Header лише читають результат свого runtime.
# Знайти Content-Type
#
# Читає заголовки останньої HTTP-відповіді цього скрипта, наприклад Content-Type. Це не тіло, не
# заголовки запиту й не HTTP-код.
#
# String: рядки Ім’я: значення через CRLF, без статусного рядка HTTP. До запиту та після
# мережевої помилки порожній. Порядок і регістр не гарантовано; окремої команди HTTP-коду немає.
SUB Main()
# ReadHeader шукає ім’я на початку рядка без регістру, обрізає пробіли значення; якщо немає —
# порожня строка.
# example.com не надає показаного сервісу. Замініть URL власним: приклад робить справжній
# HTTP-запит, без ігрових дій.
UO.HTTP_Get("https://example.com/basic-status")
Return ReadHeader(UO.HTTP_Header(), "Content-Type")
END SUB
Function ReadHeader(headers, name)
Dim marker = Chr(13) & Chr(10) & LCase(name) & ":"
Dim text = Chr(13) & Chr(10) & headers & Chr(13) & Chr(10)
Dim start = InStr(1, LCase(text), marker)
If start = 0 Then
Return ""
End If
start += Len(marker)
Dim finish = InStr(start, text, Chr(13) & Chr(10))
Return Trim(Mid(text, start, finish - start))
End FunctionПояснення параметрів і виконання:
- ReadHeader шукає ім’я на початку рядка без регістру, обрізає пробіли значення; якщо немає — порожня строка.
- example.com не надає показаного сервісу. Замініть URL власним: приклад робить справжній HTTP-запит, без ігрових дій.
# Знайти позначку JSON
#
# Читає заголовки останньої HTTP-відповіді цього скрипта, наприклад Content-Type. Це не тіло, не
# заголовки запиту й не HTTP-код.
#
# String: рядки Ім’я: значення через CRLF, без статусного рядка HTTP. До запиту та після
# мережевої помилки порожній. Порядок і регістр не гарантовано; окремої команди HTTP-коду немає.
SUB Main()
# Пошук application/json у всіх заголовках дає Boolean. Для точного поля використайте
# ReadHeader, а дані перевірте JsonParse.
# example.com не надає показаного сервісу. Замініть URL власним: приклад робить справжній
# HTTP-запит, без ігрових дій.
UO.HTTP_Get("https://example.com/basic-status")
Dim headers = UO.HTTP_Header()
Return InStr(1, LCase(headers), "application/json") > 0
END SUBПояснення параметрів і виконання:
- Пошук application/json у всіх заголовках дає Boolean. Для точного поля використайте ReadHeader, а дані перевірте JsonParse.
- example.com не надає показаного сервісу. Замініть URL власним: приклад робить справжній HTTP-запит, без ігрових дій.
# Заголовки двійкового GET
#
# Читає заголовки останньої HTTP-відповіді цього скрипта, наприклад Content-Type. Це не тіло, не
# заголовки запиту й не HTTP-код.
#
# String: рядки Ім’я: значення через CRLF, без статусного рядка HTTP. До запиту та після
# мережевої помилки порожній. Порядок і регістр не гарантовано; окремої команди HTTP-коду немає.
SUB Main()
# Потік не заважає читанню заголовків: тіло у data, HTTP_Body порожній.
# example.com не надає показаного сервісу. Замініть URL власним: приклад робить справжній
# HTTP-запит, без ігрових дій.
Dim data = MemoryStream()
Using data
UO.HTTP_Get("https://example.com/route-data.bin", data)
Dim headers = UO.HTTP_Header()
Return headers
End Using
END SUBПояснення параметрів і виконання:
- Потік не заважає читанню заголовків: тіло у data, HTTP_Body порожній.
- example.com не надає показаного сервісу. Замініть URL власним: приклад робить справжній HTTP-запит, без ігрових дій.
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь