输入/搜索内容
内置函数
结构体
Ticker
Depth
OrderBook
Trade
Record
Market
Order
Condition
Account
Asset
Position
Funding
其它结构
HttpQuery-options
HttpQuery-return
LogStatus-table
LogStatus-btnTypeOne
LogStatus-btnTypeTwo
状态栏组件
Chart-options
Chart-return
KLineChart-options
KLineChart-return
SetData-data
EventLoop-return
exchange.Go-return
DBExec-return
Dial-return
Thread.join-return
内置变量与常量
通用约定
交易所

该JSON结构是调用HttpQuery函数时,在参数options结构中将debug字段指定为true后,HttpQuery函数在调试模式下返回的数据结构。

属性

名称类型描述

StatusCode

number

HTTP状态码。请求未收到应答(连接被拒绝、DNS解析失败、超时、代理失败等)时为0。

Header

object

应答头信息。每个键的值为字符串数组(同名应答头可能出现多次,例如多条Set-Cookie)。

Cookies

array

应答中各条Set-Cookie解析得到的数组,每个元素包含Name、Value、Path、Domain、Expires、MaxAge、Secure、HttpOnly、SameSite、Raw字段。

Trace

object

请求各阶段的耗时等诊断信息,包括elapsed_ms(总耗时)、dns_ms、connect_ms、tls_ms、ttfb_ms(首字节耗时)、recv_ms等毫秒数,以及peer_addr(对端地址)、reused(是否复用连接)、version(HTTP版本)等字段。仅在debug为true时存在。

Length

number

报文长度。设置了charset时为解码前的长度。

Body

string

报文内容。请求失败时为空字符串。

Error

string

请求失败的原因,包含请求方法、URL和底层错误信息,例如:Get "https://www.okx.com/api/v5/public/time": timeout after 1000ms。仅在请求失败(StatusCode为0)时出现。

参考

备注

返回的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不填充)。