Skip to content

API UO HTTP_Post es

Codex edited this page Oct 3, 2026 · 1 revision

UO.HTTP_Post

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

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

ClassicUO • Runtime API

Envía texto a su servicio HTTP mediante POST y devuelve la respuesta. Telegram/Discord requieren sus propios protocolos y autenticación.

Sintaxis exacta

UO.HTTP_Post(URL:Any, PostData:Any) -> Any

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.
  • PostData — Texto obligatorio: UTF-8, Content-Type: text/plain; charset=utf-8. Sin codificación automática de formularios ni application/json. JsonStringify solo genera texto: el servicio debe aceptar JSON como text/plain. No se pueden configurar cabeceras arbitrarias.

Devuelve

String: texto de respuesta, también HTTP_Body(). No Boolean/código HTTP; vacío o no vacío no demuestra éxito.

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.
  • POST guarda cuerpo/cabeceras y devuelve el cuerpo. No reintente solo por una respuesta vacía: el servidor quizá ya actuó. accepted/status son acuerdos de su servicio.

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

POST guarda cuerpo/cabeceras y devuelve el cuerpo. No reintente solo por una respuesta vacía: el servidor quizá ya actuó. accepted/status son acuerdos de su servicio.

String: texto de respuesta, también HTTP_Body(). No Boolean/código HTTP; vacío o no vacío no demuestra éxito.

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

Comprobar una respuesta acordada

# Comprobar una respuesta acordada
#
# Envía texto a su servicio HTTP mediante POST y devuelve la respuesta. Telegram/Discord
# requieren sus propios protocolos y autenticación.
#
# String: texto de respuesta, también HTTP_Body(). No Boolean/código HTTP; vacío o no vacío no
# demuestra éxito.

SUB Main()
    # El servicio responde accepted a Route stopped. True comprueba ese texto, no el código HTTP.
    # example.com no ofrece esos servicios. Sustituya las URL: los ejemplos hacen solicitudes HTTP
    # reales, sin acciones del juego.

    Dim reply = UO.HTTP_Post("https://example.com/basic-event", "Route stopped")
    Return Trim(reply) = "accepted"
END SUB

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

  • El servicio responde accepted a Route stopped. True comprueba ese texto, no el código HTTP.
  • example.com no ofrece esos servicios. Sustituya las URL: los ejemplos hacen solicitudes HTTP reales, sin acciones del juego.

Informe estructurado

# Informe estructurado
#
# Envía texto a su servicio HTTP mediante POST y devuelve la respuesta. Telegram/Discord
# requieren sus propios protocolos y autenticación.
#
# String: texto de respuesta, también HTTP_Body(). No Boolean/código HTTP; vacío o no vacío no
# demuestra éxito.

SUB Main()
    # JsonStringify escapa el salto de línea; Content-Type sigue siendo text/plain. JSON de
    # respuesta: status, o unknown si falta; error: invalid response.
    # example.com no ofrece esos servicios. Sustituya las URL: los ejemplos hacen solicitudes HTTP
    # reales, sin acciones del juego.

    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

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

  • JsonStringify escapa el salto de línea; Content-Type sigue siendo text/plain. JSON de respuesta: status, o unknown si falta; error: invalid response.
  • example.com no ofrece esos servicios. Sustituya las URL: los ejemplos hacen solicitudes HTTP reales, sin acciones del juego.

Conservar la primera respuesta

# Conservar la primera respuesta
#
# Envía texto a su servicio HTTP mediante POST y devuelve la respuesta. Telegram/Discord
# requieren sus propios protocolos y autenticación.
#
# String: texto de respuesta, también HTTP_Body(). No Boolean/código HTTP; vacío o no vacío no
# demuestra éxito.

SUB Main()
    # firstReply/firstHeaders conservan POST; el GET siguiente solo cambia los búferes internos.
    # example.com no ofrece esos servicios. Sustituya las URL: los ejemplos hacen solicitudes HTTP
    # reales, sin acciones del juego.

    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

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

  • firstReply/firstHeaders conservan POST; el GET siguiente solo cambia los búferes internos.
  • example.com no ofrece esos servicios. Sustituya las URL: los ejemplos hacen solicitudes HTTP reales, sin acciones del juego.

Clone this wiki locally