HttpQuery-return
该JSON结构是调用HttpQuery函数时,在参数options结构中将debug字段指定为true后,HttpQuery函数在调试模式下返回的数据结构。
属性
| 名称 | 类型 | 描述 |
StatusCode | number | HTTP状态码。请求未收到应答(连接被拒绝、DNS解析失败、超时、代理失败等)时为0。 |
Header | object | 应答头信息。每个键的值为字符串数组(同名应答头可能出现多次,例如多条 |
Cookies | array | 应答中各条 |
Trace | object | 请求各阶段的耗时等诊断信息,包括 |
Length | number | 报文长度。设置了 |
Body | string | 报文内容。请求失败时为空字符串。 |
Error | string | 请求失败的原因,包含请求方法、URL和底层错误信息,例如: |
参考
备注
返回的JSON数据结构示例:
json
{
"StatusCode": 302,
"Header": {
"Content-Type": ["text/html"],
"Location": ["https://www.example.com/"]
},
"Cookies": [],
"Trace": {
"elapsed_ms": 152.4,
"dns_ms": 3.1,
"connect_ms": 20.5,
"tls_ms": 45.2,
"ttfb_ms": 150.8,
"recv_ms": 1.6,
"peer_addr": "93.184.216.34:443",
"reused": false,
"version": "HTTP/1.1"
},
"Length": 154,
"Body": "..."
}
请求失败(未收到应答)时返回的数据结构示例:
json
{
"StatusCode": 0,
"Header": {},
"Cookies": [],
"Length": 0,
"Body": "",
"Error": "Get \"https://www.okx.com/api/v5/public/time\": timeout after 1000ms"
}
HTTP状态码为4xx、5xx的应答不属于请求失败,此时StatusCode为实际状态码,且不包含Error字段。可以通过StatusCode统一判断:if (ret.StatusCode !== 200) { ... }。
Rust中HttpQuery返回的HttpRet结构只有StatusCode、Header、Cookies、Body、Error字段(没有Length、Trace,Cookies不填充)。