GFHttpRequestBuilder¶
API Reference / Standard / 类索引
- 路径:
addons/gf/standard/utilities/io/gf_http_request_builder.gd - 模块:
Standard - 继承:
RefCounted - API:
public - 类别:运行时句柄 (
runtime_handle) - 首次版本:
3.17.0
通用 HTTP 请求构建器。 负责整理 URL、query、headers、body、timeout 和响应解析策略。 它只封装 Godot HTTPRequest 的通用流程,不内置任何具体服务、鉴权或业务接口。
成员概览¶
| 类型 | 名称 | 签名 |
|---|---|---|
| 枚举 | Method |
enum Method |
| 枚举 | ParseMode |
enum ParseMode |
| 属性 | url |
var url: String = "" |
| 属性 | method |
var method: Method = Method.GET |
| 属性 | parse_mode |
var parse_mode: ParseMode = ParseMode.TEXT |
| 属性 | timeout_seconds |
var timeout_seconds: float = 20.0 |
| 属性 | metadata |
var metadata: Dictionary = {} |
| 方法 | set_url |
func set_url(next_url: String) -> GFHttpRequestBuilder: |
| 方法 | set_method |
func set_method(next_method: Method) -> GFHttpRequestBuilder: |
| 方法 | set_parse_mode |
func set_parse_mode(next_parse_mode: ParseMode) -> GFHttpRequestBuilder: |
| 方法 | set_timeout |
func set_timeout(seconds: float) -> GFHttpRequestBuilder: |
| 方法 | set_header |
func set_header(key: String, value: String) -> GFHttpRequestBuilder: |
| 方法 | remove_header |
func remove_header(key: String) -> GFHttpRequestBuilder: |
| 方法 | add_query_parameter |
func add_query_parameter(key: String, value: Variant) -> GFHttpRequestBuilder: |
| 方法 | set_text_body |
func set_text_body(text: String, content_type: String = "text/plain; charset=utf-8") -> GFHttpRequestBuilder: |
| 方法 | set_json_body |
func set_json_body(value: Variant) -> GFHttpRequestBuilder: |
| 方法 | build_url |
func build_url() -> String: |
| 方法 | build_headers |
func build_headers() -> PackedStringArray: |
| 方法 | build_request |
func build_request() -> Dictionary: |
| 方法 | execute |
func execute(parent: Node = null) -> GFHttpResponse: |
| 方法 | parse_body |
func parse_body(body: PackedByteArray) -> Dictionary: |
枚举¶
Method¶
- API:
public
enum Method { ## HTTP GET。 GET, ## HTTP POST。 POST, ## HTTP PUT。 PUT, ## HTTP PATCH。 PATCH, ## HTTP DELETE。 DELETE, ## HTTP HEAD。 HEAD, }
HTTP 请求方法。
ParseMode¶
- API:
public
响应体解析模式。
属性¶
url¶
- API:
public
请求 URL。
method¶
- API:
public
HTTP 方法。
parse_mode¶
- API:
public
响应解析模式。
timeout_seconds¶
- API:
public
请求超时时间,单位秒。
metadata¶
- API:
public
调用方附加元数据,会复制到 GFHttpResponse。
结构:
metadata: Dictionary,复制到 GFHttpResponse 的调用方元数据。
方法¶
set_url¶
- API:
public
设置请求 URL。
参数:
| 名称 | 说明 |
|---|---|
next_url |
新 URL。 |
返回:当前构建器。
set_method¶
- API:
public
设置 HTTP 方法。
参数:
| 名称 | 说明 |
|---|---|
next_method |
HTTP 方法枚举。 |
返回:当前构建器。
set_parse_mode¶
- API:
public
设置响应解析模式。
参数:
| 名称 | 说明 |
|---|---|
next_parse_mode |
解析模式。 |
返回:当前构建器。
set_timeout¶
- API:
public
设置请求超时时间。
参数:
| 名称 | 说明 |
|---|---|
seconds |
超时秒数。 |
返回:当前构建器。
set_header¶
- API:
public
设置或覆盖请求头。
参数:
| 名称 | 说明 |
|---|---|
key |
请求头名称。 |
value |
请求头值。 |
返回:当前构建器。
remove_header¶
- API:
public
移除请求头。
参数:
| 名称 | 说明 |
|---|---|
key |
请求头名称。 |
返回:当前构建器。
add_query_parameter¶
- API:
public
添加 query 参数。
参数:
| 名称 | 说明 |
|---|---|
key |
参数名。 |
value |
参数值。 |
返回:当前构建器。
结构:
value: Variant,URI 编码前会转换为文本的查询参数值。
set_text_body¶
- API:
public
func set_text_body(text: String, content_type: String = "text/plain; charset=utf-8") -> GFHttpRequestBuilder:
设置文本请求体。
参数:
| 名称 | 说明 |
|---|---|
text |
请求体文本。 |
content_type |
可选 Content-Type。 |
返回:当前构建器。
set_json_body¶
- API:
public
设置 JSON 请求体。
参数:
| 名称 | 说明 |
|---|---|
value |
可被 JSON.stringify() 序列化的数据。 |
返回:当前构建器。
结构:
value: Variant,兼容 JSON.stringify 的请求体载荷。
build_url¶
- API:
public
构建最终 URL。
返回:拼接 query 后的 URL。
build_headers¶
- API:
public
构建 Godot HTTPRequest 可用的请求头数组。
返回:Header 数组。
build_request¶
- API:
public
构建普通请求字典,适合测试、日志或项目自定义传输层使用。
返回:请求快照。
结构:
return: Dictionary,包含 url、method、method_name、headers、body、timeout_seconds、parse_mode、parse_mode_name 和 metadata。
execute¶
- API:
public
使用 HTTPRequest 执行请求。
参数:
| 名称 | 说明 |
|---|---|
parent |
HTTPRequest 节点的父节点;为空时尝试挂到当前 SceneTree root。 |
返回:响应对象,可监听 completed。
parse_body¶
- API:
public
按当前 parse_mode 解析响应体。
参数:
| 名称 | 说明 |
|---|---|
body |
响应 bytes。 |
返回:解析结果字典。
结构:
return: Dictionary,包含 ok、text、data 和可选 error。