Skip to content

API UO HTTP_Body zh tw

Codex edited this page Oct 3, 2026 · 1 revision

UO.HTTP_Body

Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

UO.HTTP_Get · UO.HTTP_Post · UO.HTTP_Body · UO.HTTP_Header

ClassicUO • Runtime API

讀取此腳本最近的 HTTP 回應文字,例如 JSON 設定;不會再次連線。

完整語法

UO.HTTP_Body() -> Any

參數

沒有參數。

傳回值

String:暫存文字。首次請求前、GET 寫入串流後或網路錯誤後為空;正常的 HTTP 204 也可能是空的。

行為

  • 回應屬於此腳本的 runtime。其下一次 GET/POST 會取代回應,其他脚本不會影響它;不存入設定檔。要保留舊回應,先複製到變數。
  • GET/POST 在腳本執行緒等待,請求與完整內文共用 20 秒期限。停止腳本會取消等待,Body/Header 不等待。即使使用 File,仍會先把全部內文載入記憶體。
  • 依 charset 解碼;缺少或未知時使用 UTF-8,也會讀取 4xx/5xx 回應。網路錯誤或逾時會顯示錯誤並清空內文與標頭;Try/Catch 不能取代回應驗證。腳本取消會繼續傳遞,本機寫入或參數錯誤可被捕捉。
  • Body 只讀取,不重送、不清除。二進位 GET 後請用 ToArray() 或檔案。

內部函式:從呼叫到結果

這是客戶端的實作步驟,不是額外命令。GET/POST 呼叫 HttpRequest;Body/Header 只讀取所屬 runtime 的結果。

1. ExecuteClientApiCompatibility

Body 只讀取,不重送、不清除。二進位 GET 後請用 ToArray() 或檔案。

String:暫存文字。首次請求前、GET 寫入串流後或網路錯誤後為空;正常的 HTTP 204 也可能是空的。

專案原始碼: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; 函式 ExecuteClientApiCompatibility.

這是客戶端的實作步驟,不是額外命令。GET/POST 呼叫 HttpRequest;Body/Header 只讀取所屬 runtime 的結果。

範例

以文字作條件

# 以文字作條件
#
# 讀取此腳本最近的 HTTP 回應文字,例如 JSON 設定;不會再次連線。
#
# String:暫存文字。首次請求前、GET 寫入串流後或網路錯誤後為空;正常的 HTTP 204 也可能是空的。

SUB Main()
    # 只有 allow 傳回 True,其他或空白回應為 False。不啟動移動或戰鬥。
    # example.com 未提供這些示範服務,請換成自己的 URL。執行會發出真正的 HTTP 請求,不會執行遊戲動作。

    UO.HTTP_Get("https://example.com/basic-permission")
    Dim permission = Trim(UO.HTTP_Body())
    Return permission = "allow"
END SUB

參數與執行說明:

  • 只有 allow 傳回 True,其他或空白回應為 False。不啟動移動或戰鬥。
  • example.com 未提供這些示範服務,請換成自己的 URL。執行會發出真正的 HTTP 請求,不會執行遊戲動作。

結合兩個回應

# 結合兩個回應
#
# 讀取此腳本最近的 HTTP 回應文字,例如 JSON 設定;不會再次連線。
#
# String:暫存文字。首次請求前、GET 寫入串流後或網路錯誤後為空;正常的 HTTP 204 也可能是空的。

SUB Main()
    # 先保存路線名稱,再 GET 說明,避免第二次請求覆蓋名稱。
    # example.com 未提供這些示範服務,請換成自己的 URL。執行會發出真正的 HTTP 請求,不會執行遊戲動作。

    UO.HTTP_Get("https://example.com/route-name")
    Dim routeName = UO.HTTP_Body()
    UO.HTTP_Get("https://example.com/route-description")
    Return routeName & ": " & UO.HTTP_Body()
END SUB

參數與執行說明:

  • 先保存路線名稱,再 GET 說明,避免第二次請求覆蓋名稱。
  • example.com 未提供這些示範服務,請換成自己的 URL。執行會發出真正的 HTTP 請求,不會執行遊戲動作。

區分位元組與文字

# 區分位元組與文字
#
# 讀取此腳本最近的 HTTP 回應文字,例如 JSON 設定;不會再次連線。
#
# String:暫存文字。首次請求前、GET 寫入串流後或網路錯誤後為空;正常的 HTTP 204 也可能是空的。

SUB Main()
    # 三個位元組產生 3:,因為 HTTP_Body 是空的。data 保留到 Using 結束。
    # example.com 未提供這些示範服務,請換成自己的 URL。執行會發出真正的 HTTP 請求,不會執行遊戲動作。

    Dim data = MemoryStream()
    Using data
        UO.HTTP_Get("https://example.com/route-data.bin", data)
        Return CStr(data.Length()) & ":" & UO.HTTP_Body()
    End Using
END SUB

參數與執行說明:

  • 三個位元組產生 3:,因為 HTTP_Body 是空的。data 保留到 Using 結束。
  • example.com 未提供這些示範服務,請換成自己的 URL。執行會發出真正的 HTTP 請求,不會執行遊戲動作。

Clone this wiki locally