2025-5-23 升级说明
-------------------------------------------------------------
升级:为模型提供本地化界面功能提基础支撑,包括设置启动界面函数以及结果解析界面方法。
并为TSDESK内嵌客户端提供本地化资源基础支撑。//待发布
说明:对用户在自己电脑上开发与运行tsl脚本提供更方便的界面支撑做准备。
-------------------------------------------------------------
升级:syslinuxkrnlclosemutex(name:String;isprivate:Boolean)函数,和syscreatemutex对应。支持在LINUX上手动删除掉因互斥支持产生的系统信号量以及临时目录的文件。
说明:对Linux版本解析器上互斥锁的功能做升级。
-------------------------------------------------------------
升级:语言级提供对TSDESK桌面开发的tfm窗体文件支持。
说明:桌面开发的功能支持
-------------------------------------------------------------
修正:Read函数使用掩码版本存在的问题。
-------------------------------------------------------------
升级:Apache,JavaWEB模块提供chunk模式支持,支持类似于大模型一样按单词吐词输出。
说明:web开发新增功能
-------------------------------------------------------------
升级:sethttpmode(session:intptr;mode:Integer);等函数支持网页下载实现分段输出等功能。
设置chunked模式,主要用于大模型类的一个请求分段输出模式。如果MODE为0,缺省模式。为1,则为多段模式,多段模式可以让GETHTTP等函数在获得chunked的内容时获得一段即刻返回,chunked且非最后一个code为1000,可以继续GETHTTP直到出错或者code为200表示结束。
sethttpcallback(session:intptr;callback:funptr[,t:string]);
设置http回调,缺省回调模式是progress模式,可以通过t设定为"header"设置头部回调函数,t支持"progress"和"header"两种模式。
progress模式的回调函数定义为 function progresscallback(session,TotalDown,Downloaded,TotalUpload,Uploaded);
下载总字节数,已下载总字节数,上传总字节数,已上传总计字节数等不一定在每一次回调都会变化,因为会间隔一段时间进行进度更新,即便没有发生进度变化。
回调函数的返回值为0表示继续,如果返回为非0则结束请求。
header模式的回调函数定位为function headercallback(session,headerline);
HEADERLINE是每来一行的内容,HEADER的结束是获得一个独立的回车换行。
回调函数的返回值为0表示继续,非0则结束请求。如果仅仅只需要取完HEADER即可,可以当headerline为回车换行时返回-1即可。
gethttpcontent(session[,frompos]);
获得HTTP返回的具体内容,可以从frompos开始取,缺省是取全部。这个可以方便在progress回调函数中实现文件的临时存贮,亦可以动态打印内容。
gethttpresponseheader([session]);
获得HTTP返回的头信息,可以在header回调中看全部合成的header,也可以从已经完成会话的时候获得会话的头部信息。
///====================================下边是下载的进度和头部进度的例子
a:=createhttpsession();
sethttpcallback(a,findfunction("dd")); //进度回调
sethttpcallback(a,findfunction("head"),"header");//头部回调
s:="http://www.baidu.com"; //小型下载
m:="http://www.tinysoft.com/download/setup64.exe";//具备下载总量的下载
l:="http://speed.cloudflare.com/__down?bytes=123456789"; //头部没有content-length的下载
GetHttp(l,60000,v,code); //可以用s/m/l看看区别
echo "\r\ndone",'->',code,'->',length(v);
function dd(a,b,c,d,e);
begin
if c > 0 then
echo #8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8,c,'/',b;
return 0; //not done
end;
function head(a,b);
begin
echo b;
//if b="\r\n" then
//return -1; //如果返回header后就结束请求打开这两行即可
return 0;
end;
///====================================
说明:具体函数说明可参考
FAQ:
CreateHttpSession
FAQ:
SetHttpMode
FAQ:
SetHttpCallBack
FAQ:
GetHttpContent
FAQ:
GetHttpResponseHeader