HttpQuery_Go
发送HTTP请求,是HttpQuery函数的异步版本。
HttpQuery_Go(url)
HttpQuery_Go(url, options)示例
同时发起两个异步请求,再分别取回结果。
javascript
function main() {
// 创建第一个异步线程
var r1 = HttpQuery_Go("https://xxx.xxx.xxx") // https://xxx.xxx.xxx 仅为演示地址,可以是某个数据源
// 创建第二个异步线程
var r2 = HttpQuery_Go("https://xxx.xxx.xxx")
// 获取第一个异步线程调用的返回值
var tickers1 = r1.wait()
// 获取第二个异步线程调用的返回值
var tickers2 = r2.wait()
// 打印结果
Log("tickers1:", tickers1)
Log("tickers2:", tickers2)
}
python
def main():
# 创建第一个异步请求
r1 = HttpQuery_Go("https://xxx.xxx.xxx") # https://xxx.xxx.xxx 仅为演示地址,可以是某个数据源
# 创建第二个异步请求
r2 = HttpQuery_Go("https://xxx.xxx.xxx")
# 获取第一个异步请求的返回值
tickers1 = r1.wait()
# 获取第二个异步请求的返回值
tickers2 = r2.wait()
# 打印结果
Log("tickers1:", tickers1)
Log("tickers2:", tickers2)
rust
fn main() {
// 创建第一个异步请求,参数与HttpQuery相同(无options时传None)
let r1 = HttpQuery_Go("https://xxx.xxx.xxx", None); // https://xxx.xxx.xxx 仅为演示地址,可以是某个数据源
// 创建第二个异步请求
let r2 = HttpQuery_Go("https://xxx.xxx.xxx", None);
// wait(0)一直等待到请求完成,由类型注解决定取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)。