Skip to content

API UO HTTP_Header ja

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

このスクリプトの最後の HTTP 応答ヘッダーを読みます。Content-Type などであり、本文、要求ヘッダー、HTTP 状態コードではありません。

正確な構文

UO.HTTP_Header() -> Any

パラメーター

引数はありません。

戻り値

String:CRLF 区切りの「名前: 値」。HTTP 状態行はありません。要求前や通信エラー後は空です。順序と大文字小文字は保証されず、状態コード専用の命令はありません。

動作

  • 応答はこのスクリプトの runtime に属します。その次の GET/POST が置き換え、他のスクリプトは変更しません。プロファイルには保存されません。古い応答が必要なら先に変数へコピーします。
  • GET/POST はスクリプトのスレッドで待機し、要求と本文読取全体で 20 秒が期限です。停止すると待機を取り消します。Body/Header は待機しません。File 指定でも本文全体をメモリーに読み込みます。
  • charset で復号し、未指定・未知なら UTF-8 を使います。4xx/5xx の本文も読みます。通信エラー・タイムアウトはエラー表示と本文・ヘッダーの消去になります。Try/Catch は応答検証の代用ではありません。停止は伝播し、ローカル書込・引数エラーは捕捉できます。
  • Header は応答と内容のヘッダーを合わせ、バイナリ GET 後にも読めます。名前は大文字小文字を無視して比較します。Content-Type は内容の検証ではなく、取得した内容をコードとして実行しないでください。

内部関数:呼び出しから結果まで

実際のクライアント処理段階で、追加命令ではありません。GET/POST が HttpRequest を呼び、Body/Header は runtime 内の結果を読むだけです。

1. ExecuteClientApiCompatibility

Header は応答と内容のヘッダーを合わせ、バイナリ GET 後にも読めます。名前は大文字小文字を無視して比較します。Content-Type は内容の検証ではなく、取得した内容をコードとして実行しないでください。

String:CRLF 区切りの「名前: 値」。HTTP 状態行はありません。要求前や通信エラー後は空です。順序と大文字小文字は保証されず、状態コード専用の命令はありません。

プロジェクトのソース: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; 関数 ExecuteClientApiCompatibility.

実際のクライアント処理段階で、追加命令ではありません。GET/POST が HttpRequest を呼び、Body/Header は runtime 内の結果を読むだけです。

使用例

Content-Type を名前で取得

# Content-Type を名前で取得
#
# このスクリプトの最後の HTTP 応答ヘッダーを読みます。Content-Type などであり、本文、要求ヘッダー、HTTP 状態コードではありません。
#
# String:CRLF 区切りの「名前: 値」。HTTP 状態行はありません。要求前や通信エラー後は空です。順序と大文字小文字は保証されず、状態コード専用の命令はありません。

SUB Main()
    # ReadHeader は行頭の名前を大小文字を無視して探し、値の前後の空白を除去。なければ空文字列です。
    # example.com はこのサービスを提供しません。自分の URL に変更してください。実行すると実際の HTTP 要求が発生しますが、ゲーム操作はありません。

    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

パラメーターと実行の説明:

  • ReadHeader は行頭の名前を大小文字を無視して探し、値の前後の空白を除去。なければ空文字列です。
  • example.com はこのサービスを提供しません。自分の URL に変更してください。実行すると実際の HTTP 要求が発生しますが、ゲーム操作はありません。

JSON の表示を検索

# JSON の表示を検索
#
# このスクリプトの最後の HTTP 応答ヘッダーを読みます。Content-Type などであり、本文、要求ヘッダー、HTTP 状態コードではありません。
#
# String:CRLF 区切りの「名前: 値」。HTTP 状態行はありません。要求前や通信エラー後は空です。順序と大文字小文字は保証されず、状態コード専用の命令はありません。

SUB Main()
    # 全ヘッダーの application/json を検索する Boolean です。正確なフィールドは ReadHeader、内容は JsonParse で確認します。
    # example.com はこのサービスを提供しません。自分の URL に変更してください。実行すると実際の HTTP 要求が発生しますが、ゲーム操作はありません。

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

パラメーターと実行の説明:

  • 全ヘッダーの application/json を検索する Boolean です。正確なフィールドは ReadHeader、内容は JsonParse で確認します。
  • example.com はこのサービスを提供しません。自分の URL に変更してください。実行すると実際の HTTP 要求が発生しますが、ゲーム操作はありません。

バイナリ応答のヘッダー

# バイナリ応答のヘッダー
#
# このスクリプトの最後の HTTP 応答ヘッダーを読みます。Content-Type などであり、本文、要求ヘッダー、HTTP 状態コードではありません。
#
# String:CRLF 区切りの「名前: 値」。HTTP 状態行はありません。要求前や通信エラー後は空です。順序と大文字小文字は保証されず、状態コード専用の命令はありません。

SUB Main()
    # ストリームでもヘッダーは読めます。本文は data にあり、HTTP_Body は空です。
    # example.com はこのサービスを提供しません。自分の URL に変更してください。実行すると実際の HTTP 要求が発生しますが、ゲーム操作はありません。

    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

パラメーターと実行の説明:

  • ストリームでもヘッダーは読めます。本文は data にあり、HTTP_Body は空です。
  • example.com はこのサービスを提供しません。自分の URL に変更してください。実行すると実際の HTTP 要求が発生しますが、ゲーム操作はありません。

Clone this wiki locally