Skip to content

API UO HTTP_Header it

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

Legge gli ultimi header HTTP di questo script, ad esempio Content-Type; non il corpo, gli header della richiesta o il codice HTTP.

Sintassi esatta

UO.HTTP_Header() -> Any

Parametri

Nessun parametro.

Restituisce

String: righe Nome: valore separate da CRLF, senza riga di stato HTTP. Vuoto prima della richiesta/dopo errore di rete. Ordine e maiuscole non garantiti; nessun comando separato per il codice HTTP.

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.
  • Header unisce header di risposta e contenuto, anche dopo GET binario. Confrontare i nomi senza distinzione di maiuscole. Content-Type non valida i dati; non eseguirli come codice.

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

Header unisce header di risposta e contenuto, anche dopo GET binario. Confrontare i nomi senza distinzione di maiuscole. Content-Type non valida i dati; non eseguirli come codice.

String: righe Nome: valore separate da CRLF, senza riga di stato HTTP. Vuoto prima della richiesta/dopo errore di rete. Ordine e maiuscole non garantiti; nessun comando separato per il codice HTTP.

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

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

Esempi

Leggere Content-Type

# Leggere Content-Type
#
# Legge gli ultimi header HTTP di questo script, ad esempio Content-Type; non il corpo, gli
# header della richiesta o il codice HTTP.
#
# String: righe Nome: valore separate da CRLF, senza riga di stato HTTP. Vuoto prima della
# richiesta/dopo errore di rete. Ordine e maiuscole non garantiti; nessun comando separato per
# il codice HTTP.

SUB Main()
    # ReadHeader cerca il nome a inizio riga senza distinzione di maiuscole e rimuove gli spazi
    # esterni; se assente restituisce vuoto.
    # 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-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

Spiegazione dei parametri e dell’esecuzione:

  • ReadHeader cerca il nome a inizio riga senza distinzione di maiuscole e rimuove gli spazi esterni; se assente restituisce vuoto.
  • example.com non offre questi servizi. Sostituire gli URL: gli esempi effettuano vere richieste HTTP, senza azioni di gioco.

Cercare un indicatore JSON

# Cercare un indicatore JSON
#
# Legge gli ultimi header HTTP di questo script, ad esempio Content-Type; non il corpo, gli
# header della richiesta o il codice HTTP.
#
# String: righe Nome: valore separate da CRLF, senza riga di stato HTTP. Vuoto prima della
# richiesta/dopo errore di rete. Ordine e maiuscole non garantiti; nessun comando separato per
# il codice HTTP.

SUB Main()
    # Cerca application/json in tutti gli header: Boolean, non verifica dei dati. Per il campo
    # esatto usare ReadHeader, poi JsonParse.
    # 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-status")
    Dim headers = UO.HTTP_Header()
    Return InStr(1, LCase(headers), "application/json") > 0
END SUB

Spiegazione dei parametri e dell’esecuzione:

  • Cerca application/json in tutti gli header: Boolean, non verifica dei dati. Per il campo esatto usare ReadHeader, poi JsonParse.
  • example.com non offre questi servizi. Sostituire gli URL: gli esempi effettuano vere richieste HTTP, senza azioni di gioco.

Header binari

# Header binari
#
# Legge gli ultimi header HTTP di questo script, ad esempio Content-Type; non il corpo, gli
# header della richiesta o il codice HTTP.
#
# String: righe Nome: valore separate da CRLF, senza riga di stato HTTP. Vuoto prima della
# richiesta/dopo errore di rete. Ordine e maiuscole non garantiti; nessun comando separato per
# il codice HTTP.

SUB Main()
    # Il flusso non impedisce la lettura degli header: corpo in data, HTTP_Body vuoto.
    # 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)
        Dim headers = UO.HTTP_Header()
        Return headers
    End Using
END SUB

Spiegazione dei parametri e dell’esecuzione:

  • Il flusso non impedisce la lettura degli header: corpo in data, HTTP_Body vuoto.
  • example.com non offre questi servizi. Sostituire gli URL: gli esempi effettuano vere richieste HTTP, senza azioni di gioco.

Clone this wiki locally