Skip to content

API UO HTTP_Get es

Codex edited this page Oct 3, 2026 · 1 revision

UO.HTTP_Get

Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

UO.HTTP_Get · UO.HTTP_Post · UO.HTTP_Body · UO.HTTP_Header

ClassicUO • Runtime API

Descarga ajustes o archivos por HTTP/HTTPS, sin ejecutar el contenido ni gestionar la conexión al juego.

Sintaxis exacta

UO.HTTP_Get(URL:Any) -> Unit
UO.HTTP_Get(URL:Any, LStream:Any) -> Unit

Parámetros

  • URL — String obligatoria: dirección http:// o https:// completa. Usa la red normal del proceso, no el proxy de juego del perfil. No requiere conexión al juego.
  • LStream — MemoryStream() o File(path) opcional. Omitido, 0 o Nothing: texto mediante HTTP_Body(). Los bytes reemplazan todo el contenido; MemoryStream vuelve a 0. File sobrescribe el archivo; la carpeta debe existir. Otros tipos se rechazan antes de enviar.

Devuelve

Unit: sin valor, no Boolean, ID ni cantidad de bytes. Texto mediante HTTP_Body(), bytes desde el flujo.

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.
  • GET sin flujo guarda texto/cabeceras; con flujo guarda bytes/cabeceras y vacía HTTP_Body. Respuesta vacía/error de red también vacía el flujo. Descargue y valide en memoria antes de reemplazar archivos importantes.

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

GET sin flujo guarda texto/cabeceras; con flujo guarda bytes/cabeceras y vacía HTTP_Body. Respuesta vacía/error de red también vacía el flujo. Descargue y valide en memoria antes de reemplazar archivos importantes.

Unit: sin valor, no Boolean, ID ni cantidad de bytes. Texto mediante HTTP_Body(), bytes desde el flujo.

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

2. HttpRequest

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.

Código del proyecto: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; función HttpRequest.

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

Ejemplos

Leer un umbral de maná

# Leer un umbral de maná
#
# Descarga ajustes o archivos por HTTP/HTTPS, sin ejecutar el contenido ni gestionar la conexión
# al juego.
#
# Unit: sin valor, no Boolean, ID ni cantidad de bytes. Texto mediante HTTP_Body(), bytes desde
# el flujo.

SUB Main()
    # Objeto JSON minMana: número 0..100 convertido a Integer, o 30 como alternativa. Ajuste del
    # script, no maná actual.
    # 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-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

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

  • Objeto JSON minMana: número 0..100 convertido a Integer, o 30 como alternativa. Ajuste del script, no maná actual.
  • example.com no ofrece esos servicios. Sustituya las URL: los ejemplos hacen solicitudes HTTP reales, sin acciones del juego.

Comprobar antes de guardar

# Comprobar antes de guardar
#
# Descarga ajustes o archivos por HTTP/HTTPS, sin ejecutar el contenido ni gestionar la conexión
# al juego.
#
# Unit: sin valor, no Boolean, ID ni cantidad de bytes. Texto mediante HTTP_Body(), bytes desde
# el flujo.

SUB Main()
    # Solo datos no vacíos sobrescriben download.bin en la carpeta de trabajo. True no valida su
    # formato; compruebe también el contenido.
    # 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)
        If data.Length() = 0 Then
            Return False
        End If
        data.SaveToFile("download.bin")
        Return True
    End Using
END SUB

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

  • Solo datos no vacíos sobrescriben download.bin en la carpeta de trabajo. True no valida su formato; compruebe también el contenido.
  • example.com no ofrece esos servicios. Sustituya las URL: los ejemplos hacen solicitudes HTTP reales, sin acciones del juego.

Escribir directamente

# Escribir directamente
#
# Descarga ajustes o archivos por HTTP/HTTPS, sin ejecutar el contenido ni gestionar la conexión
# al juego.
#
# Unit: sin valor, no Boolean, ID ni cantidad de bytes. Texto mediante HTTP_Body(), bytes desde
# el flujo.

SUB Main()
    # http-download.bin se sobrescribe incluso con respuesta vacía. Using libera el objeto; Main
    # devuelve cabeceras.
    # example.com no ofrece esos servicios. Sustituya las URL: los ejemplos hacen solicitudes HTTP
    # reales, sin acciones del juego.

    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

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

  • http-download.bin se sobrescribe incluso con respuesta vacía. Using libera el objeto; Main devuelve cabeceras.
  • example.com no ofrece esos servicios. Sustituya las URL: los ejemplos hacen solicitudes HTTP reales, sin acciones del juego.

Clone this wiki locally