输入/搜索内容
内置函数
Global
Log
Market
Trade
Account
Futures
Exchange
IO
Network
HttpQuery
HttpQuery_Go
Dial
Mail
Mail_Go
Storage
Threads
TA
Talib
OS
结构体
内置变量与常量
通用约定
交易所

发送Http请求,HttpQuery函数的异步版本。

HttpQuery_Go(url)
HttpQuery_Go(url, options)

示例

异步访问交易所公共接口获取聚合行情数据。

javascript
function main() { // 创建第一个异步线程 var r1 = HttpQuery_Go("https://www.okx.com/api/v5/market/tickers?instType=SPOT") // 创建第二个异步线程 var r2 = HttpQuery_Go("https://api.huobi.pro/market/tickers") // 获取第一个异步线程调用的返回值 var tickers1 = r1.wait() // 获取第二个异步线程调用的返回值 var tickers2 = r2.wait() // 打印结果 Log("tickers1:", tickers1) Log("tickers2:", tickers2) }
python
def main(): # 创建第一个异步请求 r1 = HttpQuery_Go("https://www.okx.com/api/v5/market/tickers?instType=SPOT") # 创建第二个异步请求 r2 = HttpQuery_Go("https://api.huobi.pro/market/tickers") # 获取第一个异步请求的返回值 tickers1 = r1.wait() # 获取第二个异步请求的返回值 tickers2 = r2.wait() # 打印结果 Log("tickers1:", tickers1) Log("tickers2:", tickers2)
rust
fn main() { // 创建第一个异步请求,参数与HttpQuery相同(无options时传None) let r1 = HttpQuery_Go("https://www.okx.com/api/v5/market/tickers?instType=SPOT", None); // 创建第二个异步请求 let r2 = HttpQuery_Go("https://api.huobi.pro/market/tickers", None); // 获取第一个异步请求的返回值,wait(0)一直等待到请求完成(对应JS的无参wait()) // 由类型注解决定取Body字符串(String)或完整应答(HttpRet) let tickers1: String = r1.wait(0).unwrap_or_default(); // 获取第二个异步请求的返回值 let tickers2: String = r2.wait(0).unwrap_or_default(); // 打印结果 Log!("tickers1:", tickers1); Log!("tickers2:", tickers2); }

返回值

类型描述

object

立即返回一个并发对象,用它的wait方法取请求结果;结果(包括请求失败时的返回值)与HttpQuery的返回值相同。wait的超时与重复调用见备注。

参数

名称类型必填描述

url

string

是

Http请求url。

options

object

否

请求设置,所有字段都可选,与HttpQuery的options相同(见HttpQuery-options);debug为true时取回完整应答报文,timeout为超时毫秒数。

参考

备注

HttpQuery_Go()函数支持JavaScript、Python、Rust语言。HttpQuery_Go()主要用于访问交易所不需要签名的接口,例如行情信息等公共接口。回测系统中不支持HttpQuery_Go函数。

wait方法可以传入超时参数(毫秒):不传或传入0时一直等待到请求完成,传入-1时不等待,传入正数时最多等待该毫秒数。请求尚未完成时JavaScript返回undefined、Python返回None,之后可以再次调用wait获取结果;结果已被取走后再次调用wait时,JavaScript抛出异常routine N already finished,Python记录该错误并返回None。

Rust中wait方法返回Result,结果类型由返回值类型注解决定(String为应答Body,HttpRet为完整应答);请求尚未完成时返回Err(routine N not finished),之后可以再次调用wait;结果取走后再调用wait返回Err(routine N already finished)。