输入/搜索内容
内置函数
Global
Version
Sleep
IsVirtual
Mail
Mail_Go
SetErrorFilter
GetPid
GetLastError
GetCommand
GetMeta
Dial
HttpQuery
HttpQuery_Go
Encode
UnixNano
Unix
GetOS
MD5
DBExec
UUID
EventLoop
_G
_D
_N
_C
_Cross
JSON.parse
JSON.stringify
SetChannelData
GetChannelData
Log
Market
Trade
Account
Futures
Threads
TA
Talib
OS
结构体
内置变量

发送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

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

参数

名称类型必填描述

url

string

是

HTTP请求的URL地址。

options

object

否

请求设置,与HttpQuery的options参数相同,所有字段都可选,见HttpQuery-options;debug为true时返回完整应答报文,否则只返回应答Body。

参考

备注

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)。