Skip to content

API UO HTTP_Header fr

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

Lit les derniers en-têtes HTTP de ce script, par exemple Content-Type, pas le corps, les en-têtes de requête ou le code HTTP.

Syntaxe exacte

UO.HTTP_Header() -> Any

Paramètres

Aucun paramètre.

Retour

String : lignes Nom: valeur séparées par CRLF, sans ligne de statut HTTP. Vide avant requête/après erreur réseau. Ordre/casse variables; pas de commande séparée pour le code HTTP.

Comportement

  • Le tampon appartient au runtime de ce script. Son prochain GET/POST le remplace; les autres scripts ne le modifient pas. Il n’est pas sauvegardé dans le profil. Copiez les anciennes données utiles dans des variables.
  • GET/POST attendent dans le thread du script : délai global de 20 secondes, corps inclus. Arrêter le script annule l’attente; Body/Header n’attendent pas. Même avec File, tout le corps est chargé en mémoire.
  • Décodage selon charset, sinon UTF-8, également si inconnu. Les corps 4xx/5xx sont lus. Erreur réseau/délai dépassé : message d’erreur et tampons vidés. Try/Catch ne remplace pas la vérification de réponse. L’annulation se propage; erreurs locales d’écriture/arguments interceptables.
  • Header réunit les en-têtes de réponse et de contenu, même après GET binaire. Comparaison des noms sans casse. Content-Type ne valide pas le contenu; ne pas exécuter les données comme du code.

Fonctions internes : de l’appel au résultat

Étapes réelles du client, pas des commandes supplémentaires : GET/POST appellent HttpRequest; Body/Header lisent le résultat local au runtime.

1. ExecuteClientApiCompatibility

Header réunit les en-têtes de réponse et de contenu, même après GET binaire. Comparaison des noms sans casse. Content-Type ne valide pas le contenu; ne pas exécuter les données comme du code.

String : lignes Nom: valeur séparées par CRLF, sans ligne de statut HTTP. Vide avant requête/après erreur réseau. Ordre/casse variables; pas de commande séparée pour le code HTTP.

Source du projet: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; fonction ExecuteClientApiCompatibility.

Étapes réelles du client, pas des commandes supplémentaires : GET/POST appellent HttpRequest; Body/Header lisent le résultat local au runtime.

Exemples

Lire Content-Type

# Lire Content-Type
#
# Lit les derniers en-têtes HTTP de ce script, par exemple Content-Type, pas le corps, les
# en-têtes de requête ou le code HTTP.
#
# String : lignes Nom: valeur séparées par CRLF, sans ligne de statut HTTP. Vide avant
# requête/après erreur réseau. Ordre/casse variables; pas de commande séparée pour le code HTTP.

SUB Main()
    # ReadHeader cherche le nom en début de ligne sans casse et retire les espaces extérieurs;
    # absent donne une chaîne vide.
    # example.com ne fournit pas ce service. Remplacez les URL : les exemples effectuent de vraies
    # requêtes HTTP, sans action dans le jeu.

    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

Explication des paramètres et du déroulement:

  • ReadHeader cherche le nom en début de ligne sans casse et retire les espaces extérieurs; absent donne une chaîne vide.
  • example.com ne fournit pas ce service. Remplacez les URL : les exemples effectuent de vraies requêtes HTTP, sans action dans le jeu.

Chercher une mention JSON

# Chercher une mention JSON
#
# Lit les derniers en-têtes HTTP de ce script, par exemple Content-Type, pas le corps, les
# en-têtes de requête ou le code HTTP.
#
# String : lignes Nom: valeur séparées par CRLF, sans ligne de statut HTTP. Vide avant
# requête/après erreur réseau. Ordre/casse variables; pas de commande séparée pour le code HTTP.

SUB Main()
    # Recherche application/json dans tous les en-têtes : Boolean, pas validation du contenu.
    # Utilisez ReadHeader pour le champ précis, puis JsonParse.
    # example.com ne fournit pas ce service. Remplacez les URL : les exemples effectuent de vraies
    # requêtes HTTP, sans action dans le jeu.

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

Explication des paramètres et du déroulement:

  • Recherche application/json dans tous les en-têtes : Boolean, pas validation du contenu. Utilisez ReadHeader pour le champ précis, puis JsonParse.
  • example.com ne fournit pas ce service. Remplacez les URL : les exemples effectuent de vraies requêtes HTTP, sans action dans le jeu.

En-têtes binaires

# En-têtes binaires
#
# Lit les derniers en-têtes HTTP de ce script, par exemple Content-Type, pas le corps, les
# en-têtes de requête ou le code HTTP.
#
# String : lignes Nom: valeur séparées par CRLF, sans ligne de statut HTTP. Vide avant
# requête/après erreur réseau. Ordre/casse variables; pas de commande séparée pour le code HTTP.

SUB Main()
    # Le flux n’empêche pas leur lecture : corps dans data, HTTP_Body vide.
    # example.com ne fournit pas ce service. Remplacez les URL : les exemples effectuent de vraies
    # requêtes HTTP, sans action dans le jeu.

    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

Explication des paramètres et du déroulement:

  • Le flux n’empêche pas leur lecture : corps dans data, HTTP_Body vide.
  • example.com ne fournit pas ce service. Remplacez les URL : les exemples effectuent de vraies requêtes HTTP, sans action dans le jeu.

Clone this wiki locally