HTTP 服务
辅助头文件:
#include "brookesia/service_helper/network/http.hpp"辅助类:
esp_brookesia::service::helper::Http
概述
brookesia_service_http 以 Brookesia 服务函数和事件提供 HTTP/HTTPS 客户端请求能力。
核心职责
把 ESP-IDF HTTP client 行为封装在服务 schema 后。
支持请求提交、取消、内存响应、文件下载、进度和完成事件。
供应用和智能体获取包索引、下载、云配置和网络资源。
集成位置
该组件是 ESP-Brookesia 发布组件清单中的独立组件,可通过 ESP-IDF 组件依赖集成,并与同层框架组件按需组合。
服务接口
函数
Request
描述
Submit an HTTP request and wait for the response.
执行要求
是否需要调度器: 不需要
参数
Request类型:
Object是否必填: 必填
描述: HTTP request object.
返回值
类型:
Object描述: Example: {"request_id":1,"status_code":200,"headers":{},"body":"{"ok":true}","file_path":"","error":"Ok","error_message":""}
Schema JSON
展开查看 JSON
{
"name": "Request",
"description": "Submit an HTTP request and wait for the response.",
"require_scheduler": false,
"default_timeout_ms": null,
"parameters": [
{
"name": "Request",
"description": "HTTP request object.",
"type": "Object",
"required": true,
"default_value": null
}
],
"return_value": {
"type": "Object",
"description": "Example: {\"request_id\":1,\"status_code\":200,\"headers\":{},\"body\":\"{\\\"ok\\\":true}\",\"file_path\":\"\",\"error\":\"Ok\",\"error_message\":\"\"}"
}
}
CLI 命令
svc_call Http Request {"Request":null}
RequestAsync
描述
Submit an HTTP request asynchronously.
执行要求
是否需要调度器: 不需要
参数
Request类型:
Object是否必填: 必填
描述: HTTP request object.
返回值
类型:
Number描述: Request id number.
Schema JSON
展开查看 JSON
{
"name": "RequestAsync",
"description": "Submit an HTTP request asynchronously.",
"require_scheduler": false,
"default_timeout_ms": null,
"parameters": [
{
"name": "Request",
"description": "HTTP request object.",
"type": "Object",
"required": true,
"default_value": null
}
],
"return_value": {
"type": "Number",
"description": "Request id number."
}
}
CLI 命令
svc_call Http RequestAsync {"Request":null}
CancelRequest
描述
Cancel a pending or running HTTP request.
执行要求
是否需要调度器: 不需要
参数
RequestId类型:
Number是否必填: 必填
描述: Request id returned by RequestAsync.
Schema JSON
展开查看 JSON
{
"name": "CancelRequest",
"description": "Cancel a pending or running HTTP request.",
"require_scheduler": false,
"default_timeout_ms": null,
"parameters": [
{
"name": "RequestId",
"description": "Request id returned by RequestAsync.",
"type": "Number",
"required": true,
"default_value": null
}
],
"return_value": null
}
CLI 命令
svc_call Http CancelRequest {"RequestId":null}
GetRequestState
描述
Get HTTP request state.
执行要求
是否需要调度器: 不需要
参数
RequestId类型:
Number是否必填: 必填
描述: Request id returned by RequestAsync.
返回值
类型:
Object描述: Example: {"request_id":1,"state":"Completed","error":"Ok","status_code":200,"downloaded":128,"total":128}
Schema JSON
展开查看 JSON
{
"name": "GetRequestState",
"description": "Get HTTP request state.",
"require_scheduler": false,
"default_timeout_ms": null,
"parameters": [
{
"name": "RequestId",
"description": "Request id returned by RequestAsync.",
"type": "Number",
"required": true,
"default_value": null
}
],
"return_value": {
"type": "Object",
"description": "Example: {\"request_id\":1,\"state\":\"Completed\",\"error\":\"Ok\",\"status_code\":200,\"downloaded\":128,\"total\":128}"
}
}
CLI 命令
svc_call Http GetRequestState {"RequestId":null}
ResetStatistics
描述
Reset HTTP service statistics.
执行要求
是否需要调度器: 不需要
参数
无。
Schema JSON
展开查看 JSON
{
"name": "ResetStatistics",
"description": "Reset HTTP service statistics.",
"require_scheduler": false,
"default_timeout_ms": null,
"parameters": [],
"return_value": null
}
CLI 命令
svc_call Http ResetStatistics
事件
RequestStarted
描述
HTTP request started.
执行要求
是否需要调度器: 需要
参数
RequestId类型:
Number描述: Request id.
State类型:
String描述: Request state.
Schema JSON
展开查看 JSON
{
"name": "RequestStarted",
"description": "HTTP request started.",
"require_scheduler": true,
"items": [
{
"name": "RequestId",
"description": "Request id.",
"type": "Number"
},
{
"name": "State",
"description": "Request state.",
"type": "String"
}
]
}
CLI 命令
svc_subscribe Http RequestStarted
RequestProgress
描述
HTTP request progress updated.
执行要求
是否需要调度器: 需要
参数
RequestId类型:
Number描述: Request id.
Progress类型:
Object描述: Progress object.
Schema JSON
展开查看 JSON
{
"name": "RequestProgress",
"description": "HTTP request progress updated.",
"require_scheduler": true,
"items": [
{
"name": "RequestId",
"description": "Request id.",
"type": "Number"
},
{
"name": "Progress",
"description": "Progress object.",
"type": "Object"
}
]
}
CLI 命令
svc_subscribe Http RequestProgress
RequestCompleted
描述
HTTP request completed.
执行要求
是否需要调度器: 需要
参数
RequestId类型:
Number描述: Request id.
Response类型:
Object描述: HTTP response object.
Schema JSON
展开查看 JSON
{
"name": "RequestCompleted",
"description": "HTTP request completed.",
"require_scheduler": true,
"items": [
{
"name": "RequestId",
"description": "Request id.",
"type": "Number"
},
{
"name": "Response",
"description": "HTTP response object.",
"type": "Object"
}
]
}
CLI 命令
svc_subscribe Http RequestCompleted
RequestFailed
描述
HTTP request failed.
执行要求
是否需要调度器: 需要
参数
RequestId类型:
Number描述: Request id.
Response类型:
Object描述: HTTP response object.
Schema JSON
展开查看 JSON
{
"name": "RequestFailed",
"description": "HTTP request failed.",
"require_scheduler": true,
"items": [
{
"name": "RequestId",
"description": "Request id.",
"type": "Number"
},
{
"name": "Response",
"description": "HTTP response object.",
"type": "Object"
}
]
}
CLI 命令
svc_subscribe Http RequestFailed
RequestCanceled
描述
HTTP request canceled.
执行要求
是否需要调度器: 需要
参数
RequestId类型:
Number描述: Request id.
Response类型:
Object描述: HTTP response object.
Schema JSON
展开查看 JSON
{
"name": "RequestCanceled",
"description": "HTTP request canceled.",
"require_scheduler": true,
"items": [
{
"name": "RequestId",
"description": "Request id.",
"type": "Number"
},
{
"name": "Response",
"description": "HTTP response object.",
"type": "Object"
}
]
}
CLI 命令
svc_subscribe Http RequestCanceled
GeneralStateChanged
描述
HTTP service general state changed.
执行要求
是否需要调度器: 需要
参数
State类型:
String描述: General state.
Schema JSON
展开查看 JSON
{
"name": "GeneralStateChanged",
"description": "HTTP service general state changed.",
"require_scheduler": true,
"items": [
{
"name": "State",
"description": "General state.",
"type": "String"
}
]
}
CLI 命令
svc_subscribe Http GeneralStateChanged