HttpQuery_Go
发送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 | 立即返回一个并发对象,用它的 |
参数
| 名称 | 类型 | 必填 | 描述 |
url | string | 是 | Http请求url。 |
options | object | 否 | 请求设置,所有字段都可选,与 |
参考
备注
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)。