API调用小记(Touchdesigner和ESP32)

调用

调用网络API通常是通过HTTP来做的,对于TD这种上位机软件来说,可以直接选择GET、POST这些方式,通过地址传入参数。一般的形式是地址后面加'?'然后跟参数名=值,不同的参数之间通过‘&’连接,例如

地址?参数名1=值1&参数名2=值2......

例如调用心知天气的API,可以查到官方的文档是这样的


TD

所以在TD可以新建一个web client,在URL填入https://api.seniverse.com/v3/weather/now.json,方法选择GET

然后新建一个table在里面按照文档说明写入参数,传入OP里


点request就可以获取了,TD会自动用上面提到的把参数链接起来。

ESP32

对于ESP32这种没有这样工具的东西来调用的,话这些就要手动生成字符串了,类似这样



其实就是先连接上服务器,地址是根地址。然后GET方法其实就是一个特定的字符串

GET url HTTP/1.1
Host: host
connection: close

然后就会收到服务器返回的数据

返回数据

一般来说API返回的都是JSON格式的

TD

在TD里面,可以用TDJ来解析,例如这样

TDJ = op.TDModules.mod.TDJSON
json_data = TDJ.textToJSON(data)
op('table2')[0,0]= json_data['results'][0]['location']['name']
op('table2')[1,0]=  json_data['results'][0]['now']['text']
op('table2')[2,0]=  json_data['results'][0]['now']['temperature']

还可以用datToJSON(dat, orderedDict=True, showErrors=False)来转换,具体可以看这里https://docs.derivative.ca/TDJSON

ESP32

可以用ArduinoJSON这个库。


你可能感兴趣的:(API调用小记(Touchdesigner和ESP32))