Skip to content

API UO HTTP_Header de

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

Liest die letzten HTTP-Antwortheader dieses Skripts, etwa Content-Type; weder Inhalt noch Anfrageheader oder HTTP-Statuscode.

Genaue Syntax

UO.HTTP_Header() -> Any

Parameter

Keine Parameter.

Rückgabewert

String: Name: Wert-Zeilen mit CRLF, ohne HTTP-Statuszeile. Vor Anfragen/nach Netzwerkfehlern leer. Reihenfolge/Schreibweise variieren; kein eigener Statuscode-Aufruf.

Verhalten

  • Der Antwortpuffer gehört dieser Skript-Runtime. Ihr nächstes GET/POST ersetzt ihn; andere Skripte ändern ihn nicht. Keine Speicherung im Profil. Benötigte alte Antworten vorher in Variablen kopieren.
  • GET/POST warten im Skriptthread. Eine Frist von 20 Sekunden umfasst Anfrage und Antwortinhalt. Skriptstopp bricht ab; Body/Header warten nicht. Auch mit File wird der gesamte Inhalt im Speicher gepuffert.
  • charset bestimmt die Decodierung, sonst bzw. bei unbekannter Codierung UTF-8. Auch 4xx/5xx-Inhalte werden gelesen. Netzwerkfehler/Timeout melden einen Fehler und leeren Inhalt/Header; Try/Catch ersetzt keine Antwortprüfung. Skriptabbruch wird weitergegeben. Lokale Schreib-/Argumentfehler können abgefangen werden.
  • Header umfasst Antwort- und Inhaltsheader, auch nach binärem GET. Namen ohne Beachtung der Großschreibung vergleichen. Content-Type validiert keine Daten; Inhalt nicht als Code ausführen.

Interne Funktionen: vom Aufruf zum Ergebnis

Tatsächliche Client-Schritte, keine zusätzlichen Befehle: GET/POST rufen HttpRequest auf; Body/Header lesen nur das Runtime-Ergebnis.

1. ExecuteClientApiCompatibility

Header umfasst Antwort- und Inhaltsheader, auch nach binärem GET. Namen ohne Beachtung der Großschreibung vergleichen. Content-Type validiert keine Daten; Inhalt nicht als Code ausführen.

String: Name: Wert-Zeilen mit CRLF, ohne HTTP-Statuszeile. Vor Anfragen/nach Netzwerkfehlern leer. Reihenfolge/Schreibweise variieren; kein eigener Statuscode-Aufruf.

Projektquelle: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; Funktion ExecuteClientApiCompatibility.

Tatsächliche Client-Schritte, keine zusätzlichen Befehle: GET/POST rufen HttpRequest auf; Body/Header lesen nur das Runtime-Ergebnis.

Beispiele

Content-Type lesen

# Content-Type lesen
#
# Liest die letzten HTTP-Antwortheader dieses Skripts, etwa Content-Type; weder Inhalt noch
# Anfrageheader oder HTTP-Statuscode.
#
# String: Name: Wert-Zeilen mit CRLF, ohne HTTP-Statuszeile. Vor Anfragen/nach Netzwerkfehlern
# leer. Reihenfolge/Schreibweise variieren; kein eigener Statuscode-Aufruf.

SUB Main()
    # ReadHeader sucht einen Namen am Zeilenanfang unabhängig von Großschreibung und trimmt den
    # Wert; fehlend ergibt leer.
    # example.com stellt diesen Dienst nicht bereit. Durch eigene URLs ersetzen: Das Beispiel sendet
    # echte HTTP-Anfragen, aber keine Spielaktionen.

    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

Erläuterung der Parameter und Ausführung:

  • ReadHeader sucht einen Namen am Zeilenanfang unabhängig von Großschreibung und trimmt den Wert; fehlend ergibt leer.
  • example.com stellt diesen Dienst nicht bereit. Durch eigene URLs ersetzen: Das Beispiel sendet echte HTTP-Anfragen, aber keine Spielaktionen.

JSON-Markierung suchen

# JSON-Markierung suchen
#
# Liest die letzten HTTP-Antwortheader dieses Skripts, etwa Content-Type; weder Inhalt noch
# Anfrageheader oder HTTP-Statuscode.
#
# String: Name: Wert-Zeilen mit CRLF, ohne HTTP-Statuszeile. Vor Anfragen/nach Netzwerkfehlern
# leer. Reihenfolge/Schreibweise variieren; kein eigener Statuscode-Aufruf.

SUB Main()
    # application/json in allen Headern ergibt Boolean, keine Inhaltsprüfung. Für das konkrete Feld
    # ReadHeader, für Daten JsonParse nutzen.
    # example.com stellt diesen Dienst nicht bereit. Durch eigene URLs ersetzen: Das Beispiel sendet
    # echte HTTP-Anfragen, aber keine Spielaktionen.

    UO.HTTP_Get("https://example.com/basic-status")
    Dim headers = UO.HTTP_Header()
    Return InStr(1, LCase(headers), "application/json") > 0
END SUB

Erläuterung der Parameter und Ausführung:

  • application/json in allen Headern ergibt Boolean, keine Inhaltsprüfung. Für das konkrete Feld ReadHeader, für Daten JsonParse nutzen.
  • example.com stellt diesen Dienst nicht bereit. Durch eigene URLs ersetzen: Das Beispiel sendet echte HTTP-Anfragen, aber keine Spielaktionen.

Binärheader lesen

# Binärheader lesen
#
# Liest die letzten HTTP-Antwortheader dieses Skripts, etwa Content-Type; weder Inhalt noch
# Anfrageheader oder HTTP-Statuscode.
#
# String: Name: Wert-Zeilen mit CRLF, ohne HTTP-Statuszeile. Vor Anfragen/nach Netzwerkfehlern
# leer. Reihenfolge/Schreibweise variieren; kein eigener Statuscode-Aufruf.

SUB Main()
    # Der Stream verhindert keinen Headerzugriff. Inhalt in data, HTTP_Body leer.
    # example.com stellt diesen Dienst nicht bereit. Durch eigene URLs ersetzen: Das Beispiel sendet
    # echte HTTP-Anfragen, aber keine Spielaktionen.

    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

Erläuterung der Parameter und Ausführung:

  • Der Stream verhindert keinen Headerzugriff. Inhalt in data, HTTP_Body leer.
  • example.com stellt diesen Dienst nicht bereit. Durch eigene URLs ersetzen: Das Beispiel sendet echte HTTP-Anfragen, aber keine Spielaktionen.

Clone this wiki locally