-
Notifications
You must be signed in to change notification settings - Fork 0
API UO HTTP_Post zh tw
Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
UO.HTTP_Get · UO.HTTP_Post · UO.HTTP_Body · UO.HTTP_Header
ClassicUO • Runtime API
使用 POST 將文字送到您的 HTTP 服務並傳回答覆。Telegram/Discord 仍需各自的協定及驗證支援。
UO.HTTP_Post(URL:Any, PostData:Any) -> Any
-
URL— 必要的 String:完整的 http:// 或 https:// 位址。使用程序的一般網路連線,不使用設定檔的遊戲代理伺服器;不必先登入遊戲。 -
PostData— 必要的內文文字,以 UTF-8 傳送,Content-Type: text/plain; charset=utf-8。不自動編碼表單或改成 application/json。JsonStringify 只產生文字,服務必須接受 text/plain 的 JSON;這些命令不能設定任意標頭。
String:回應文字,同時存入 HTTP_Body()。不是 Boolean 或 HTTP 狀態;空白或非空白都不能單獨證明成功。
- 回應屬於此腳本的 runtime。其下一次 GET/POST 會取代回應,其他脚本不會影響它;不存入設定檔。要保留舊回應,先複製到變數。
- GET/POST 在腳本執行緒等待,請求與完整內文共用 20 秒期限。停止腳本會取消等待,Body/Header 不等待。即使使用 File,仍會先把全部內文載入記憶體。
- 依 charset 解碼;缺少或未知時使用 UTF-8,也會讀取 4xx/5xx 回應。網路錯誤或逾時會顯示錯誤並清空內文與標頭;Try/Catch 不能取代回應驗證。腳本取消會繼續傳遞,本機寫入或參數錯誤可被捕捉。
- POST 保存內文與標頭並傳回內文。不要只因空回應就重送:伺服器可能已執行動作。accepted/status 是您服務的約定。
這是客戶端的實作步驟,不是額外命令。GET/POST 呼叫 HttpRequest;Body/Header 只讀取所屬 runtime 的結果。
POST 保存內文與標頭並傳回內文。不要只因空回應就重送:伺服器可能已執行動作。accepted/status 是您服務的約定。
String:回應文字,同時存入 HTTP_Body()。不是 Boolean 或 HTTP 狀態;空白或非空白都不能單獨證明成功。
專案原始碼: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; 函式 ExecuteClientApiCompatibility.
GET/POST 在腳本執行緒等待,請求與完整內文共用 20 秒期限。停止腳本會取消等待,Body/Header 不等待。即使使用 File,仍會先把全部內文載入記憶體。
依 charset 解碼;缺少或未知時使用 UTF-8,也會讀取 4xx/5xx 回應。網路錯誤或逾時會顯示錯誤並清空內文與標頭;Try/Catch 不能取代回應驗證。腳本取消會繼續傳遞,本機寫入或參數錯誤可被捕捉。
專案原始碼: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; 函式 HttpRequest.
這是客戶端的實作步驟,不是額外命令。GET/POST 呼叫 HttpRequest;Body/Header 只讀取所屬 runtime 的結果。
# 檢查約定回覆
#
# 使用 POST 將文字送到您的 HTTP 服務並傳回答覆。Telegram/Discord 仍需各自的協定及驗證支援。
#
# String:回應文字,同時存入 HTTP_Body()。不是 Boolean 或 HTTP 狀態;空白或非空白都不能單獨證明成功。
SUB Main()
# 服務對 Route stopped 回覆 accepted;True 比對文字,不代表 HTTP 狀態碼。
# example.com 未提供這些示範服務,請換成自己的 URL。執行會發出真正的 HTTP 請求,不會執行遊戲動作。
Dim reply = UO.HTTP_Post("https://example.com/basic-event", "Route stopped")
Return Trim(reply) = "accepted"
END SUB參數與執行說明:
- 服務對 Route stopped 回覆 accepted;True 比對文字,不代表 HTTP 狀態碼。
- example.com 未提供這些示範服務,請換成自己的 URL。執行會發出真正的 HTTP 請求,不會執行遊戲動作。
# 傳送結構化報告
#
# 使用 POST 將文字送到您的 HTTP 服務並傳回答覆。Telegram/Discord 仍需各自的協定及驗證支援。
#
# String:回應文字,同時存入 HTTP_Body()。不是 Boolean 或 HTTP 狀態;空白或非空白都不能單獨證明成功。
SUB Main()
# JsonStringify 會跳脫換行,但 Content-Type 仍是 text/plain。JSON 回覆傳回 status;缺少時為 unknown,錯誤時為 invalid
# response。
# example.com 未提供這些示範服務,請換成自己的 URL。執行會發出真正的 HTTP 請求,不會執行遊戲動作。
Dim report = Dictionary()
report["event"] = "route-stopped"
report["text"] = "line one" & Chr(10) & "line two"
Dim reply = UO.HTTP_Post("https://example.com/basic-report", JsonStringify(report))
Try
Dim result = JsonParse(reply)
Return result.Get("status", "unknown")
Catch problem
Return "invalid response"
End Try
END SUB參數與執行說明:
- JsonStringify 會跳脫換行,但 Content-Type 仍是 text/plain。JSON 回覆傳回 status;缺少時為 unknown,錯誤時為 invalid response。
- example.com 未提供這些示範服務,請換成自己的 URL。執行會發出真正的 HTTP 請求,不會執行遊戲動作。
# 保留第一個回應
#
# 使用 POST 將文字送到您的 HTTP 服務並傳回答覆。Telegram/Discord 仍需各自的協定及驗證支援。
#
# String:回應文字,同時存入 HTTP_Body()。不是 Boolean 或 HTTP 狀態;空白或非空白都不能單獨證明成功。
SUB Main()
# firstReply/firstHeaders 保留 POST;後續 GET 只改變內部暫存。
# example.com 未提供這些示範服務,請換成自己的 URL。執行會發出真正的 HTTP 請求,不會執行遊戲動作。
Dim firstReply = UO.HTTP_Post("https://example.com/basic-event", "Route stopped")
Dim firstHeaders = UO.HTTP_Header()
UO.HTTP_Get("https://example.com/basic-status")
Return firstReply & "|" & firstHeaders
END SUB參數與執行說明:
- firstReply/firstHeaders 保留 POST;後續 GET 只改變內部暫存。
- example.com 未提供這些示範服務,請換成自己的 URL。執行會發出真正的 HTTP 請求,不會執行遊戲動作。
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь