send_http_request
std::send_http_request 向指定 URL 发起 HTTP 请求并导出响应结果。
输入参数
| 名称 | 是否必填 | 类型 | 描述 |
|---|---|---|---|
url | 必填 | string | 请求的 URL,支持 http 和 https 协议 |
body | 可选 | string | 请求体,可为字符串或 JSON 对象 |
method | 可选 | string | 请求的 HTTP 方法,允许的方法:GET、HEAD、POST |
timeout_ms | 可选 | integer | 请求超时时间(毫秒) |
headers | 可选 | object | 请求头字段名称及其值的映射 |
pre_condition | 可选 | map | 命令执行前评估的前置条件 |
post_condition | 可选 | map | 命令执行后评估的后置条件 |
前置条件
前置条件是在命令执行前进行评估的断言。可用于判断命令是否应被执行,或根据断言结果决定是否执行特定行为。
| 属性 | 描述 |
|---|---|
behavior | 前置条件断言未通过时的行为。选项:halt(默认)、log、skip |
assertion | 要检查的断言,应评估为布尔值,或使用 std::assert_eq 及类似函数 |
后置条件
后置条件是在命令执行后进行评估的断言。它们可用于判断是否需要重新执行该命令。
| 属性 | 描述 |
|---|---|
retries | 断言失败时重新执行命令的次数。默认值:0 |
backoff_ms | 重新执行前等待的毫秒数。默认值:1000 |
behavior | 后置条件断言未通过时的行为。选项:halt(默认)、log、skip、continue |
assertion | 要检查的断言 |
输出
当 send_http_request 操作成功执行后,以下输出将附加到该操作:
| 名称 | 类型 | 描述 |
|---|---|---|
response_body | string | 以字符串形式返回的响应正文 |
status_code | integer | HTTP 响应状态码 |
示例
action "example" "std::send_http_request" {url = "https://example.com"}output "status" {value = action.example.status_code}// > status: 200
POST 请求示例
action "create_resource" "std::send_http_request" {description = "Create a new resource"url = "https://api.example.com/resources"method = "POST"headers = {"Content-Type" = "application/json"}body = {"name" = variable.name,"value" = variable.value}}
带身份验证的请求
action "api_call" "std::send_http_request" {description = "Fetch data from API"url = "https://api.example.com/data"method = "GET"headers = {"Authorization" = "Bearer ${variable.token}"}}output "response" {value = action.api_call.response_body}output "status" {value = action.api_call.status_code}
Is this page helpful?