Skip to content

API UO HTTP_Get it

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

Scarica impostazioni o file tramite HTTP/HTTPS, senza eseguire il contenuto né gestire la connessione al gioco.

Sintassi esatta

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

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.
  • LStream — MemoryStream() o File(path) facoltativo. Omettere, 0 o Nothing: testo tramite HTTP_Body(). I byte sostituiscono tutto il contenuto; MemoryStream torna a 0. File sovrascrive il file; la cartella deve esistere. Altri tipi vengono rifiutati prima della richiesta.

Restituisce

Unit: nessun valore, non Boolean, ID o numero di byte. Leggere il testo con HTTP_Body(), i byte dal flusso.

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.
  • GET senza flusso conserva testo/header; con flusso conserva byte/header e svuota HTTP_Body. Risposte vuote/errori di rete svuotano anche il flusso. Scaricare e validare in memoria prima di sostituire file importanti.

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

GET senza flusso conserva testo/header; con flusso conserva byte/header e svuota HTTP_Body. Risposte vuote/errori di rete svuotano anche il flusso. Scaricare e validare in memoria prima di sostituire file importanti.

Unit: nessun valore, non Boolean, ID o numero di byte. Leggere il testo con HTTP_Body(), i byte dal flusso.

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

Leggere una soglia di mana

# Leggere una soglia di mana
#
# Scarica impostazioni o file tramite HTTP/HTTPS, senza eseguire il contenuto né gestire la
# connessione al gioco.
#
# Unit: nessun valore, non Boolean, ID o numero di byte. Leggere il testo con HTTP_Body(), i
# byte dal flusso.

SUB Main()
    # Oggetto JSON minMana: numero 0..100 convertito in Integer, altrimenti 30. Impostazione dello
    # script, non mana corrente.
    # example.com non offre questi servizi. Sostituire gli URL: gli esempi effettuano vere richieste
    # HTTP, senza azioni di gioco.

    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

Spiegazione dei parametri e dell’esecuzione:

  • Oggetto JSON minMana: numero 0..100 convertito in Integer, altrimenti 30. Impostazione dello script, non mana corrente.
  • example.com non offre questi servizi. Sostituire gli URL: gli esempi effettuano vere richieste HTTP, senza azioni di gioco.

Controllare prima di salvare

# Controllare prima di salvare
#
# Scarica impostazioni o file tramite HTTP/HTTPS, senza eseguire il contenuto né gestire la
# connessione al gioco.
#
# Unit: nessun valore, non Boolean, ID o numero di byte. Leggere il testo con HTTP_Body(), i
# byte dal flusso.

SUB Main()
    # Solo byte non vuoti sovrascrivono download.bin nella cartella di lavoro. True non valida il
    # formato: verificare anche il contenuto.
    # example.com non offre questi servizi. Sostituire gli URL: gli esempi effettuano vere richieste
    # HTTP, senza azioni di gioco.

    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

Spiegazione dei parametri e dell’esecuzione:

  • Solo byte non vuoti sovrascrivono download.bin nella cartella di lavoro. True non valida il formato: verificare anche il contenuto.
  • example.com non offre questi servizi. Sostituire gli URL: gli esempi effettuano vere richieste HTTP, senza azioni di gioco.

Scrivere direttamente

# Scrivere direttamente
#
# Scarica impostazioni o file tramite HTTP/HTTPS, senza eseguire il contenuto né gestire la
# connessione al gioco.
#
# Unit: nessun valore, non Boolean, ID o numero di byte. Leggere il testo con HTTP_Body(), i
# byte dal flusso.

SUB Main()
    # http-download.bin viene sovrascritto anche con risposta vuota. Using libera l’oggetto; Main
    # restituisce gli header.
    # example.com non offre questi servizi. Sostituire gli URL: gli esempi effettuano vere richieste
    # HTTP, senza azioni di gioco.

    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

Spiegazione dei parametri e dell’esecuzione:

  • http-download.bin viene sovrascritto anche con risposta vuota. Using libera l’oggetto; Main restituisce gli header.
  • example.com non offre questi servizi. Sostituire gli URL: gli esempi effettuano vere richieste HTTP, senza azioni di gioco.

Clone this wiki locally