# 运行时 / 网络与HTTP ## `appendHttpHeader(session, header)` 向指定会话中添加请求头信息 | 参数 | 类型 | 说明 | | --------- | ------ | ------------------ | | `session` | any | Session ID | | `header` | string | 要添加的请求头信息 | 返回:any ## `clearHttpHeader(session)` 清除会话中的请求头信息 | 参数 | 类型 | 说明 | | --------- | ---- | -------------------------------------------------- | | `session` | any | 可选参数,整数类型,session ID,缺省时指当前会话。 | 返回:any ## `destroyHttpSession(session, return_value)` 销毁一个Http Session对象,并返回销毁结果,销毁成功返回True。 仅新一代TSL语言支持该函数。 | 参数 | 类型 | 说明 | | -------------- | ---- | -------------------------------------------------- | | `session` | int | 可选参数,整数类型,Session ID,缺省时指当前会话。 | | `return_value` | bool | object | 返回:bool ## `getHttp(session, url, time_out, value, code)` 网络访问以及相关函数相关函数。 | 参数 | 类型 | 说明 | | ---------- | ------ | ---- | | `session` | int | int | | `url` | string | int | | `time_out` | int | | | `value` | string | | | `code` | int | | 返回:bool ## `getHttpContent(session, frompos, return_value)` 获得HTTP返回的具体内容,可以从frompos开始取,缺省是取全部。 这个可以方便在progress回调函数中实现文件的临时存贮,亦可以动态打印内容。 仅新一代TSL语言支持该函数。 | 参数 | 类型 | 说明 | | -------------- | ------ | --------------------------------------------------- | | `session` | intptr | 指定session ID | | `frompos` | int | 可选参数,指定开始位置,位置从1开始,缺省时指取全部 | | `return_value` | int | 获取到的具体内容 | 返回:string ## `getHttpCookies(session)` 获取指定会话、来自服务器设置的Cookies信息 | 参数 | 类型 | 说明 | | --------- | ---- | ---------- | | `session` | any | Session ID | 返回:any ## `getHttpResponseHeader(session, return_value)` 获得HTTP返回的头信息,可以在header回调中看全部合成的header,也可以从已经完成会话的时候获得会话的头部信息。 | 参数 | 类型 | 说明 | | -------------- | ------ | --------------------------------------------------------------------------- | | `session` | int | 可选参数,指定session ID。缺省时指当前会话。仅新一代TSL语言支持该可选参数。 | | `return_value` | string | 当前下载到的完整的头部信息 | 返回:string ## `internetRequest(session, url, refer, header, post_data, user_name, pass_word, result_type, response_code, time_out)` 发送Internet访问请求,主要用于Web建立网站。 | 参数 | 类型 | 说明 | | --------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `session` | int | 可选参数,整数类型,session ID,缺省时指当前会话。多次访问且需要使用同一条链路时,可指定为同个session ID。;注:旧版本TSL语言中,该参数含义为连接模式:0-微软WININET模式;1-TCP模式。 | | `url` | string | 字符串类型,需要获取的URL串。如:`http://www.tinysoft.com.cn` | | `refer` | int | 引用者。 | | `header` | string | 发送请求的Http请求头。 | | `post_data` | int | 发送的数据。 | | `user_name` | int | 用户名。 | | `pass_word` | string | 密码。 | | `result_type` | string | 非0则Result返回Binary类型,为0则Result返回字符串类型。 | | `response_code` | string | 存放返回的HTTP代码。例如,当正确的时候返回为200。 | | `time_out` | string | 获取URL等待的毫秒数。 | 返回:bool ## `postHttp(session, url, content, time_out, value, code)` 以POST方式从指定的HTTP URL获得内容。 | 参数 | 类型 | 说明 | | ---------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `session` | int | 可选参数,整数类型,session ID,缺省时指当前会话。多次访问且需要使用同一条链路时,可指定为同个session ID。;注:旧版本TSL语言中,该参数含义为连接模式:0-微软WININET模式;1-TCP模式。 | | `url` | string | 字符串类型,需要获取的URL串。如:`http://www.tinysoft.com.cn` | | `content` | string | 二进制或字符串类型;要发送的数据。 | | `time_out` | int | 获取URL等待的毫秒数。 | | `value` | string | 存放返回的内容。 | | `code` | int | 存放返回的HTTP代码。例如,当正确的时候返回为200。 | 返回:bool ## `setHttpAuth(session, user_name, pass_word, _type)` 设置指定会话中认证信息 | 参数 | 类型 | 说明 | | ----------- | ------ | ------------------------------------------------------------ | | `session` | any | Session ID | | `user_name` | string | 用户名 | | `pass_word` | string | 密码 | | `_type` | any | 可选参数,认证信息类型;可多次调用以设置不同类型的认证信息: | 返回:any ## `setHttpCallBack(session, callback, t, return_value)` 设置http回调,缺省回调模式是progress模式,可以通过t设定为"header"设置头部回调函数。仅新一代TSL语言支持该函数。 | 参数 | 类型 | 说明 | | -------------- | ---------------------------------------------------------------------------------- | ------------------------------------------------------------ | | `session` | int | session ID | | `callback` | TFUNCTION | 函数对象,回调函数。可通过findfunction(functionname)方式获取 | | `t` | string | 可选参数,设置进度回调或头部模式。 | | `return_value` | 缺省模式,Progress模式指在HTTP请求\|响应传输过程中,实时追踪数据传输进度的回调机制 | 无 | 返回:回调函数的返回值为0表示继续,非0则结束请求 ## `setHttpCookies(session, cookies)` 设置指定会话中Cookies信息 | 参数 | 类型 | 说明 | | --------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------- | | `session` | any | Session ID | | `cookies` | string | 要设置的Cookies值信息,多个Cookie以分号分隔,如SESSIONID=ABC123;THEME=DARK;一般无需设置,同一会话中发送的多次请求会自动携带服务器设置的Cookies | 返回:any ## `setHttpMode(session, mode, return_value)` 设置chunked模式(分段模式),主要用于大模型类的一个请求分段输出模式,支持类似于大模型一样按单词吐词输出。仅新一代TSL语言支持该函数。 | 参数 | 类型 | 说明 | | -------------- | ---- | -------------------- | | `session` | any | 指定session ID | | `mode` | any | 输出模式,取值如下: | | `return_value` | any | 无 | 返回:any ## `setHttpProxy(session, proxy_addr, proxy_type)` 设置指定会话中代理信息 | 参数 | 类型 | 说明 | | ------------ | ------ | -------------------- | | `session` | any | Session ID | | `proxy_addr` | string | 代理地址 | | `proxy_type` | any | 可选参数,代理类型: | 返回:any ## `setHttpVerifySsl(session, verify)` 设置指定会话是否校验服务器证书 | 参数 | 类型 | 说明 | | --------- | ---- | ---------- | | `session` | any | Session ID | | `verify` | bool | object | 返回:any ## URL 内容函数 ## `urlToText(a_src)` 将URL标准格式的串转化为文本字符串 | 参数 | 类型 | 说明 | | ------- | ------ | ---------- | | `a_src` | string | 字符串类型 | 返回:string ### 示例 ```tsl a_src := "%23abcd%20%2010"; return urlToText(a_src); // 结果:#abcd 10 ``` ## `NetProfitGrowRatio_12(r_date)` 最近12个月的净利润增长率(%)。 (1)归属于母公司所有者净利润数据取自合并利润分配表; (2)V1:RDate报告期最近12个月的归属于母公司所有者净利润; (3)V2:上年同期PRDate最近12个月的归属于母公司所有者净利润; (4)最近12个月的净利润增长率(%)=(V1-V2)/abs(V2)\*100。 | 参数 | 类型 | 说明 | | -------- | -------- | -------------- | | `r_date` | datetime | 整数,报告期。 | 返回:float ## `NetDebt_12(r_date)` 最近12个月的净债务=付息债务-最近12个月的期末现金余额。 (1)付息债务=短期借款+长期借款。 (2)从资产负债表中取短期债务和长期债务,从现金流量表中取得期末现金余额。根据算法得到净债务。 | 参数 | 类型 | 说明 | | -------- | -------- | -------------- | | `r_date` | datetime | 整数,报告期。 | 返回:float ## `NetAssetsPS_12(r_date)` 最近12个月的每股净资产。 (1)最近12个月的每股净资产=最近12个月归属母公司股东权益合计/总股本; (2)归属母公司股东权益合计取自合并资产负债表,根据最近12个月的算法计算得到最近12个月归属母公司股东权益合计【注1】; (3)总股本取RDate当天的数据。 | 参数 | 类型 | 说明 | | -------- | -------- | -------------- | | `r_date` | datetime | 整数,报告期。 | 返回:float ## `NetAssetsPSGrowRatio_12(r_date)` 最近12个月的每股净资产增长率(%)。 (1)函数从合并利润分配表中取该报告期归属母公司股东权益合计,根据算法得到最近12个月的归属母公司股东权益合计【注1】; (2)取Rdate当日的总股本; (3)最近12个月的每股净资产V1=最近12个月的归属母公司股东权益合计/总股本; (4)同理计算上年同期的最近12个月的每股净资产V2; (5)最近12个月的每股净资产增长率(%)=(V1-V2)/abs(V2)\*100。 | 参数 | 类型 | 说明 | | -------- | -------- | -------------- | | `r_date` | datetime | 整数,报告期。 | 返回:float ## `NetEquityReturn_12(r_date)` 最近12个月的净资产收益率(%)。 (1)净资产收益率(%)=最近12个月净利润/股东权益×100; (2)净利润取自合并利润分配表,根据最近12个月的算法得到最近12个月净利润【注1】; (3)股东权益取自合并资产负债表,只取报告期RDate的数据。 | 参数 | 类型 | 说明 | | -------- | -------- | -------------- | | `r_date` | datetime | 整数,报告期。 | 返回:float ## `NetCashfromIA_12(r_date)` 最近12个月的投资活动产生的现金流量净额。 (1)投资活动产生的现金流量净额取自合并现金流量表; (2)根据最近12个月的算法得到最近12个月的投资活动产生的现金流量净额【注1】。 | 参数 | 类型 | 说明 | | -------- | -------- | -------------- | | `r_date` | datetime | 整数,报告期。 | 返回:float ## `NetCashfromOAGrowRatio_12(r_date)` 最近12个月的经营活动产生的现金流量净额增长率(%)。 (1)经营活动产生的现金流量净额取自合并现金流量表;根据最近12个月的算法得到最近12个月的经营活动产生的现金流量净额V1【注1】; (2)同理取得上年同期最近12个月的经营活动产生的现金流量净额V2; (3)最近12个月的经营活动产生的现金流量净额增长率(%)=(V1-V2)/abs(V2)\*100。 | 参数 | 类型 | 说明 | | -------- | -------- | -------------- | | `r_date` | datetime | 整数,报告期。 | 返回:float ## `NetCashFromOA_12(r_date)` 最近12个月的经营活动产生的现金流量净额。 (1)经营活动产生的现金流量净额取自合并现金流量表; (2)根据最近12个月的算法得到最近12个月的经营活动产生的现金流量净额【注1】。 | 参数 | 类型 | 说明 | | -------- | -------- | -------------- | | `r_date` | datetime | 整数,报告期。 | 返回:float ## `NetCashFromFA_12(r_date)` 最近12个月的筹资活动产生的现金流量净额。 (1)筹资活动产生的现金流量净额取自合并现金流量表; (2)根据最近12个月的算法得到最近12个月的筹资活动产生的现金流量净额【注1】。 | 参数 | 类型 | 说明 | | -------- | -------- | -------------- | | `r_date` | datetime | 整数,报告期。 | 返回:float ## `NetIncrease_12(r_date)` 最近12个月的现金及现金等价物净增加额。 (1)现金及现金等价物净增加额取自合并现金流量表; (2)根据最近12个月的算法得到最近12个月的现金及现金等价物净增加额【注1】。 | 参数 | 类型 | 说明 | | -------- | -------- | -------------- | | `r_date` | datetime | 整数,报告期。 | 返回:float ## `NetProfit_12(r_date)` 最近12个月的归属于母公司所有者的净利润。 (1)母公司所有者的净利润取自合并利润分配表; (2)根据最近12个月的算法得到最近12个月的母公司所有者的净利润【注1】。 | 参数 | 类型 | 说明 | | -------- | -------- | -------------- | | `r_date` | datetime | 整数,报告期。 | 返回:float ## `NetProfit2_12(r_date)` 最近12月净利润(业绩快报),与系统参数(股票)相关。 | 参数 | 类型 | 说明 | | -------- | -------- | ------------ | | `r_date` | datetime | 整数。报告期 | 返回:float ## `NetEquityReturn_Year(r_date, n)` 最近N年的净资产收益率(%)。 (1)取向后兼容的最新年报Q1,取N-1年前同期的年报Q2; (2)取Q2报告期的归属于母公司所有者的净利润(合并利润分配表)v1,以及Q2报告期的归属母公司股东权益合计(合并资产负债表)v2; (3)最近N年的净资产收益率(%)=v1/v2\*100。 | 参数 | 类型 | 说明 | | -------- | -------- | --------------- | | `r_date` | datetime | 整数,报告期; | | `n` | any | 整数,最近N年。 | 返回:float ## `NetAssetsPerShare_Year(r_date)` 最近1年的每股净资产。 (1)取向后兼容RDate的最新报告期NewRDate; (2)从资产负债表中取报告期NewRDate的归属母公司股东权益合计V1,以及NewRDate当天的总股本V2; (3)最近1年的每股净资产=V1/V2; (4)注意,资产负债表的科目不统计最近12个月的数据,只返回报告期的数据。 | 参数 | 类型 | 说明 | | -------- | -------- | -------------- | | `r_date` | datetime | 整数,报告期; | 返回:float ## `NetProfit_Year(r_date, n)` 最近N年的归属于母公司所有者的净利润。 (1)取向后兼容的最新年报Q1,取N-1年前同期的年报Q2; (2)在合并利润分配表取Q2报告期的归属于母公司所有者的净利润。 | 参数 | 类型 | 说明 | | -------- | -------- | -------------- | | `r_date` | datetime | 整数,报告期; | | `n` | any | 整数,最近N年 | 返回:float ## `NetIncrease_Q(r_date)` 季度的现金及现金等价物净增加额。 (1)从合并现金流量表中取出现金及现金等价物净增加额; (2)按照季度的算法,计算出RDate季度的现金及现金等价物净增加额【注1】。 | 参数 | 类型 | 说明 | | -------- | -------- | -------------- | | `r_date` | datetime | 整数,报告期。 | 返回:float ## `NetCashfromIA_Q(r_date)` 季度的投资活动产生的现金流量净额。 (1)从合并现金流量表中取出投资活动产生的现金流量净额; (2)按照季度的算法,计算出RDate季度的投资活动产生的现金流量净额【注1】。 | 参数 | 类型 | 说明 | | -------- | -------- | -------------- | | `r_date` | datetime | 整数,报告期。 | 返回:float ## `NetCashFromOA_Q(r_date)` 季度的经营活动产生的现金流量净额。 (1)从合并现金流量表中取出经营活动产生的现金流量净额; (2)按照季度的算法,计算出RDate季度的经营活动产生的现金流量净额【注1】。 | 参数 | 类型 | 说明 | | -------- | -------- | -------------- | | `r_date` | datetime | 整数,报告期。 | 返回:float ## `NetCashFromFA_Q(r_date)` 计算指定报告期最近1季度的筹资活动产生的现金流。 根据季度数据的算法【注3】,函数从合并现金流量表中取出多个报告期的筹资活动产生的现金流,计算最近1季度的筹资活动产生的现金流。 | 参数 | 类型 | 说明 | | -------- | -------- | -------------- | | `r_date` | datetime | 整数,报告期; | 返回:float ## `NetProfit_Q(r_date)` 计算指定报告期最近1季度的净利润。 根据季度数据的算法【注3】,函数从合并现金流量表中取出多个报告期的筹资活动产生的现金流,计算最近1季度的净利润。 | 参数 | 类型 | 说明 | | -------- | -------- | -------------- | | `r_date` | datetime | 整数,报告期; | 返回:float ## `NetProfit2_Q(r_date)` 归属于母公司所有者净利润(业绩快报),与系统参数(股票)相关。 实数。归属于母公司所有者净利润(业绩快报)。 | 参数 | 类型 | 说明 | | -------- | -------- | ------------ | | `r_date` | datetime | 整数。报告期 | 返回:float ## `netassetweeklylist_call(fund_arr, end_t, beg_t, sort_by, sort_order, return_number)` 基金列表指定区间单位净值、累计净值及其变化。 | 参数 | 类型 | 说明 | | --------------- | -------- | -------------------------------------- | | `fund_arr` | array | 数组。基金列表。 | | `end_t` | datetime | 日期。截止日期。 | | `beg_t` | datetime | 日期。同比日期。 | | `sort_by` | string | 字符串。排序字段,取值如下: | | `sort_order` | any | 整数。排序方法,1表示正序,0表示逆序。 | | `return_number` | any | 整数。返回个数。 | 返回:array ## `setHttpAcceptencodingon(session, is_zip)` 设定是否支持压缩。 | 参数 | 类型 | 说明 | | --------- | ------ | -------------------------- | | `session` | comobj | session ID | | `is_zip` | bool | 是否支持压缩传输,默认支持 | 返回:any ### 示例 ```tsl url := "http://www.baidu.com"; sid := createHttpSession(); setHttpAcceptencodingon(sid, false); // 设定为不允许压缩传输 setHttpCallBack(sid, findfunction("DownProg01")); // 进度回调 r := getHttp(url, 60000, v, code); echo "\r\nDone", '->code:', code, '->返回内容总长度:', length(v), "\r\n"; return 0; // --------------进度回调函数--------------------- function DownProg01(sid, alldn_b, dn_b, allup_b, up_b); // progresscallback-不提前结束 begin if dn_b > 0 then // 如果大于0则打印 begin echo "AlldnB:", alldn_b, ",dnB:", dn_b, ",AllupB:", allup_b, ",upB:", up_b, "\r\n"; end; return 0; // not done end; // 打印信息如下: ``` ## `setHttpAcceptencoding(session, acceptencodingstr)` 设定压缩格式编码类型。 | 参数 | 类型 | 说明 | | ------------------- | ------ | ------------------- | | `session` | comobj | session ID | | `acceptencodingstr` | string | Accept-Encoding类型 | 返回:any ### 示例 ```tsl url := "http://www.baidu.com"; sid := createHttpSession(); setHttpAcceptencoding(sid, "gzip"); // 设定压缩格式编码类型 setHttpCallBack(sid, findfunction("DownProg01")); // 进度回调 r := getHttp(url, 60000, v, code); echo "\r\nDone", '->code:', code, '->返回内容总长度:', length(v), "\r\n"; return 0; // --------------进度回调函数--------------------- function DownProg01(sid, alldn_b, dn_b, allup_b, up_b); // progresscallback-不提前结束 begin if dn_b > 0 then // 如果大于0则打印 begin echo "AlldnB:", alldn_b, ",dnB:", dn_b, ",AllupB:", allup_b, ",upB:", up_b, "\r\n"; end; return 0; // not done end; // 打印结果: // 注:当http进度回调时,当服务器使用分块传输(启用压缩通常会使用分块传输)时, 无法预先知道总大小所以可能出现为0的情况,属于正常现象。 ```