Skip to content

API UO HTTP_Header es

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

Lee las últimas cabeceras HTTP de este script, como Content-Type; no el cuerpo, las cabeceras de solicitud ni el código HTTP.

Sintaxis exacta

UO.HTTP_Header() -> Any

Parámetros

Sin parámetros.

Devuelve

String: líneas Nombre: valor separadas por CRLF, sin línea de estado HTTP. Vacío antes de la solicitud/después de error de red. Orden y mayúsculas variables; sin comando separado para el código HTTP.

Comportamiento

  • El búfer pertenece al runtime del script. Su siguiente GET/POST lo reemplaza; otros scripts no lo modifican. No se guarda en el perfil. Copie las respuestas necesarias en variables antes de otra solicitud.
  • GET/POST esperan en el hilo del script: límite total de 20 segundos, incluido el cuerpo. Detener el script cancela la espera; Body/Header no esperan. Incluso con File se carga todo el cuerpo en memoria.
  • Decodifica según charset; si falta/es desconocido, UTF-8. También lee cuerpos 4xx/5xx. Error de red/timeout: mensaje de error y búferes vacíos; Try/Catch no sustituye la validación de respuesta. Se propaga la cancelación; los errores locales de escritura/argumentos se pueden capturar.
  • Header combina cabeceras de respuesta y contenido, también tras GET binario. Compare nombres sin distinguir mayúsculas. Content-Type no valida los datos; no los ejecute como código.

Funciones internas: de la llamada al resultado

Pasos reales del cliente, no comandos adicionales: GET/POST llaman HttpRequest; Body/Header leen el resultado de su runtime.

1. ExecuteClientApiCompatibility

Header combina cabeceras de respuesta y contenido, también tras GET binario. Compare nombres sin distinguir mayúsculas. Content-Type no valida los datos; no los ejecute como código.

String: líneas Nombre: valor separadas por CRLF, sin línea de estado HTTP. Vacío antes de la solicitud/después de error de red. Orden y mayúsculas variables; sin comando separado para el código HTTP.

Código del proyecto: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; función ExecuteClientApiCompatibility.

Pasos reales del cliente, no comandos adicionales: GET/POST llaman HttpRequest; Body/Header leen el resultado de su runtime.

Ejemplos

Leer Content-Type

# Leer Content-Type
#
# Lee las últimas cabeceras HTTP de este script, como Content-Type; no el cuerpo, las cabeceras
# de solicitud ni el código HTTP.
#
# String: líneas Nombre: valor separadas por CRLF, sin línea de estado HTTP. Vacío antes de la
# solicitud/después de error de red. Orden y mayúsculas variables; sin comando separado para el
# código HTTP.

SUB Main()
    # ReadHeader busca el nombre al inicio de línea sin distinguir mayúsculas y recorta espacios; si
    # falta, devuelve vacío.
    # example.com no ofrece esos servicios. Sustituya las URL: los ejemplos hacen solicitudes HTTP
    # reales, sin acciones del juego.

    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

Explicación de los parámetros y la ejecución:

  • ReadHeader busca el nombre al inicio de línea sin distinguir mayúsculas y recorta espacios; si falta, devuelve vacío.
  • example.com no ofrece esos servicios. Sustituya las URL: los ejemplos hacen solicitudes HTTP reales, sin acciones del juego.

Buscar un indicador JSON

# Buscar un indicador JSON
#
# Lee las últimas cabeceras HTTP de este script, como Content-Type; no el cuerpo, las cabeceras
# de solicitud ni el código HTTP.
#
# String: líneas Nombre: valor separadas por CRLF, sin línea de estado HTTP. Vacío antes de la
# solicitud/después de error de red. Orden y mayúsculas variables; sin comando separado para el
# código HTTP.

SUB Main()
    # Busca application/json en todas las cabeceras: Boolean, no validación de datos. Para el campo
    # exacto use ReadHeader y después JsonParse.
    # example.com no ofrece esos servicios. Sustituya las URL: los ejemplos hacen solicitudes HTTP
    # reales, sin acciones del juego.

    UO.HTTP_Get("https://example.com/basic-status")
    Dim headers = UO.HTTP_Header()
    Return InStr(1, LCase(headers), "application/json") > 0
END SUB

Explicación de los parámetros y la ejecución:

  • Busca application/json en todas las cabeceras: Boolean, no validación de datos. Para el campo exacto use ReadHeader y después JsonParse.
  • example.com no ofrece esos servicios. Sustituya las URL: los ejemplos hacen solicitudes HTTP reales, sin acciones del juego.

Cabeceras binarias

# Cabeceras binarias
#
# Lee las últimas cabeceras HTTP de este script, como Content-Type; no el cuerpo, las cabeceras
# de solicitud ni el código HTTP.
#
# String: líneas Nombre: valor separadas por CRLF, sin línea de estado HTTP. Vacío antes de la
# solicitud/después de error de red. Orden y mayúsculas variables; sin comando separado para el
# código HTTP.

SUB Main()
    # El flujo no impide leer cabeceras: cuerpo en data, HTTP_Body vacío.
    # example.com no ofrece esos servicios. Sustituya las URL: los ejemplos hacen solicitudes HTTP
    # reales, sin acciones del juego.

    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

Explicación de los parámetros y la ejecución:

  • El flujo no impide leer cabeceras: cuerpo en data, HTTP_Body vacío.
  • example.com no ofrece esos servicios. Sustituya las URL: los ejemplos hacen solicitudes HTTP reales, sin acciones del juego.

Clone this wiki locally