Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何下载使用curl为ThinkOrSwim(TOS)编写的脚本?_Curl_Trading_Thinkscript - Fatal编程技术网

如何下载使用curl为ThinkOrSwim(TOS)编写的脚本?

如何下载使用curl为ThinkOrSwim(TOS)编写的脚本?,curl,trading,thinkscript,Curl,Trading,Thinkscript,名为ThinkOrSwim(by)的交易平台使用一个特殊的URL来共享指标脚本,直接进入交易平台。但是,这些脚本只是文本文件,因此您应该能够使用curl下载脚本。但是在服务器端似乎有某种过滤器来检查脚本请求的执行者(或执行者) 例如,这里有一个脚本的URL,它应该显示一些不同的移动平均值。对于实际脚本的例子,有很多 Q:如何使用curl直接下载TOS代码? 另外,我已经添加了SO标记thinkorswim,因为平台有自己的语言thinkScript,已经添加到SO标记中 更新: 通过查看文件n

名为ThinkOrSwim(by)的交易平台使用一个特殊的URL来共享指标脚本,直接进入交易平台。但是,这些脚本只是文本文件,因此您应该能够使用curl下载脚本。但是在服务器端似乎有某种过滤器来检查脚本请求的执行者(或执行者)

例如,这里有一个脚本的URL,它应该显示一些不同的移动平均值。对于实际脚本的例子,有很多

Q:如何使用curl直接下载TOS代码?

另外,我已经添加了SO标记
thinkorswim
,因为平台有自己的语言
thinkScript
,已经添加到SO标记中


更新: 通过查看文件
npthinkorswim.dll
nptossc.dll
的内容,它似乎使用了至少3种不同的自定义类型,而不是MIME类型:

x-scheme-handler/tossc
application/x-tossc
application/x-thinkorswim

更新:2021-04-24

我取得了一些进步

//npthinkorswim.dll
无记忆默剧{
NoRemove数据库{
NoRemove“内容类型”{
'application/x-thinkorswim'=s'thinkorswim loader'{
val扩展名=s“”
val CLSID=s'{79b4acff-94d2-58c5-baf6-23df99c7fcba}'
}
}
}
}
//nptossc.dll
无记忆默剧{
NoRemove数据库{
NoRemove“内容类型”{
“应用程序/x-tossc”=s“thinkDesktop配置加载程序”{
val扩展名=s“”
val CLSID=s'{dcc9a6f3-492c-5f51-a65d-3dd92b26c165}'
}
}
}
}
您可以运行应用程序,并使用以下任何一种方式导入脚本:

#从任何地方启动(安装java时)
javaw.exe-cp“C:\Program Files(x86)\thinkorswim\suit\1968.2.0\tos-suit-1968.2.0.jar”com.devexperts.jnlp.platform.impl.windows.WindowsSharedConfiguration启动程序SharedConfiguration链接A1PZUml
#从ToS目录启动
.\thinkorswim.exe自动链接A1PZUml
.\thinkorswim.exe共享配置链接到SC:A1PZUml

但是,这仍然不能提供有关如何使用curl获取脚本的任何信息。

TOS使用自定义协议
tossc:
,来处理共享脚本请求。转到您提供的URL,
http://tos.mx/A1PZUml
,服务器返回一个网页,其中包含用于在TOS应用程序中打开脚本的按钮和说明

考虑到该网页上的代码,单击thinkorswim中的视图按钮,例如,将使用href:
tossc:A1PZUml
。这是用于打开带有链接的应用程序的自定义URL

页面的JavaScript包含用于检查
tossc
协议的模拟类型的代码:

var protocol = 'tossc';
var protocolName = protocol;
for (var i = 0; i < navigator.mimeTypes.length; i++) {
    if ("tossc" == navigator.mimeTypes[i].description) {
        navigator.tosscSupported = true;
    }
}
var协议='tossc';
var protocolName=协议;
对于(var i=0;i
我不是
curl
大师,但看起来您必须能够模拟
tossc
mimetype/protocol的存在,才能检索实际的脚本内容


否则,看起来服务器只是简单地响应一种方式,让用户使用脚本标识符打开应用程序。一旦应用程序以该标识符打开,我猜该应用程序将返回到自己的服务器以提取特定脚本。

ThinkOrSwim是一个交易平台,因此与此无关。
thinkscript
标记很好,因为它直接与编码相关。任何了解thinkScript的人都会知道它与ThinkOrSwim有关。是的,我想这大概是对的,但是如果没有一个好的
wireshark
(pcap)协议交换转储,就很难实现。可能还使用了自定义的
用户代理
和内置的TLS证书。我还简要查看了java.class文件,其中有数百个文件,因此必须重新编写这些文件才能理解它们是如何做到的。我怀疑平台已经嵌入了自己的访问令牌,该令牌随请求一起发送。至少这是他们使用dev分支所做的。