Skip to content

API UO HTTP_Header uk

Codex edited this page Oct 3, 2026 · 1 revision

UO.HTTP_Header

Русский · 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.

1. ExecuteClientApiCompatibility

Header містить заголовки відповіді та вмісту, зокрема після двійкового GET. Імена порівнюйте без регістру. Content-Type не підтверджує формат даних; не запускайте їх як код.

String: рядки Ім’я: значення через CRLF, без статусного рядка HTTP. До запиту та після мережевої помилки порожній. Порядок і регістр не гарантовано; окремої команди HTTP-коду немає.

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

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

Приклади

Знайти Content-Type

# Знайти 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

# Знайти позначку 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

# Заголовки двійкового 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-запит, без ігрових дій.

Clone this wiki locally