Skip to content

API UO HTTP_Post it

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

Invia testo al proprio servizio HTTP con POST e restituisce la risposta. Telegram/Discord richiedono protocolli e autenticazione aggiuntivi.

Sintassi esatta

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

Parametri

  • URL — String obbligatoria: indirizzo http:// o https:// completo. Usa la rete normale del processo, non il proxy di gioco del profilo. Non richiede la connessione al gioco.
  • PostData — Testo obbligatorio, UTF-8 con Content-Type: text/plain; charset=utf-8. Nessuna codifica automatica di moduli o application/json. JsonStringify produce testo: il servizio deve accettare JSON come text/plain. Non si possono impostare header arbitrari.

Restituisce

String: testo della risposta, anche in HTTP_Body(). Non Boolean/codice HTTP; vuoto o non vuoto non dimostra il successo.

Comportamento

  • Il buffer appartiene al runtime dello script. Il suo prossimo GET/POST lo sostituisce; gli altri script non lo modificano. Non viene salvato nel profilo. Copiare prima le risposte da conservare in variabili.
  • GET/POST attendono nel thread dello script: limite complessivo di 20 secondi, inclusa la lettura del corpo. Lo stop annulla l’attesa; Body/Header non attendono. Anche con File tutto il corpo viene caricato in memoria.
  • Decodifica secondo charset, altrimenti UTF-8, anche se sconosciuto. Si leggono anche corpi 4xx/5xx. Errore di rete/timeout: messaggio di errore e buffer vuoti; Try/Catch non sostituisce il controllo della risposta. L’annullamento si propaga; errori locali di scrittura/argomenti sono intercettabili.
  • POST conserva corpo/header e restituisce il corpo. Non ripetere automaticamente per una risposta vuota: il server potrebbe aver già agito. accepted/status sono accordi del proprio servizio.

Funzioni interne: dalla chiamata al risultato

Passaggi reali del client, non comandi aggiuntivi: GET/POST chiamano HttpRequest; Body/Header leggono il risultato del proprio runtime.

1. ExecuteClientApiCompatibility

POST conserva corpo/header e restituisce il corpo. Non ripetere automaticamente per una risposta vuota: il server potrebbe aver già agito. accepted/status sono accordi del proprio servizio.

String: testo della risposta, anche in HTTP_Body(). Non Boolean/codice HTTP; vuoto o non vuoto non dimostra il successo.

Sorgente del progetto: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; funzione ExecuteClientApiCompatibility.

2. HttpRequest

GET/POST attendono nel thread dello script: limite complessivo di 20 secondi, inclusa la lettura del corpo. Lo stop annulla l’attesa; Body/Header non attendono. Anche con File tutto il corpo viene caricato in memoria.

Decodifica secondo charset, altrimenti UTF-8, anche se sconosciuto. Si leggono anche corpi 4xx/5xx. Errore di rete/timeout: messaggio di errore e buffer vuoti; Try/Catch non sostituisce il controllo della risposta. L’annullamento si propaga; errori locali di scrittura/argomenti sono intercettabili.

Sorgente del progetto: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; funzione HttpRequest.

Passaggi reali del client, non comandi aggiuntivi: GET/POST chiamano HttpRequest; Body/Header leggono il risultato del proprio runtime.

Esempi

Controllare una risposta concordata

# Controllare una risposta concordata
#
# Invia testo al proprio servizio HTTP con POST e restituisce la risposta. Telegram/Discord
# richiedono protocolli e autenticazione aggiuntivi.
#
# String: testo della risposta, anche in HTTP_Body(). Non Boolean/codice HTTP; vuoto o non vuoto
# non dimostra il successo.

SUB Main()
    # Il servizio risponde accepted a Route stopped. True controlla il testo, non il codice HTTP.
    # example.com non offre questi servizi. Sostituire gli URL: gli esempi effettuano vere richieste
    # HTTP, senza azioni di gioco.

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

Spiegazione dei parametri e dell’esecuzione:

  • Il servizio risponde accepted a Route stopped. True controlla il testo, non il codice HTTP.
  • example.com non offre questi servizi. Sostituire gli URL: gli esempi effettuano vere richieste HTTP, senza azioni di gioco.

Rapporto strutturato

# Rapporto strutturato
#
# Invia testo al proprio servizio HTTP con POST e restituisce la risposta. Telegram/Discord
# richiedono protocolli e autenticazione aggiuntivi.
#
# String: testo della risposta, anche in HTTP_Body(). Non Boolean/codice HTTP; vuoto o non vuoto
# non dimostra il successo.

SUB Main()
    # JsonStringify gestisce il carattere di nuova riga; Content-Type resta text/plain. Risposta
    # JSON: status, oppure unknown; errore: invalid response.
    # example.com non offre questi servizi. Sostituire gli URL: gli esempi effettuano vere richieste
    # HTTP, senza azioni di gioco.

    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

Spiegazione dei parametri e dell’esecuzione:

  • JsonStringify gestisce il carattere di nuova riga; Content-Type resta text/plain. Risposta JSON: status, oppure unknown; errore: invalid response.
  • example.com non offre questi servizi. Sostituire gli URL: gli esempi effettuano vere richieste HTTP, senza azioni di gioco.

Conservare la prima risposta

# Conservare la prima risposta
#
# Invia testo al proprio servizio HTTP con POST e restituisce la risposta. Telegram/Discord
# richiedono protocolli e autenticazione aggiuntivi.
#
# String: testo della risposta, anche in HTTP_Body(). Non Boolean/codice HTTP; vuoto o non vuoto
# non dimostra il successo.

SUB Main()
    # firstReply/firstHeaders conservano POST; il GET successivo cambia solo i buffer interni.
    # example.com non offre questi servizi. Sostituire gli URL: gli esempi effettuano vere richieste
    # HTTP, senza azioni di gioco.

    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

Spiegazione dei parametri e dell’esecuzione:

  • firstReply/firstHeaders conservano POST; il GET successivo cambia solo i buffer interni.
  • example.com non offre questi servizi. Sostituire gli URL: gli esempi effettuano vere richieste HTTP, senza azioni di gioco.

Clone this wiki locally