许多设备(如投影仪)可以通过网络界面进行控制。当您单击Web界面上的按钮时,您的计算机将通过HTTP GET或POST向设备发送消息。然后,设备会解释信息并做一些事情,比如激活快门或关闭电源。
例如,打开NEC NP-MC 453 X投影仪的HTTP GET如下所示:
GET /cgi-bin/webctrl.cgi.elf?&t:26,c:5,p:196614 HTTP/1.1
User-Agent: curl/7.64.1
Host: 192.168.5.72
打开Panasonic PT-VZ 580 U投影仪的HTTP POST示例如下所示:
POST /cgi-bin/power_on.cgi HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Authorization: Basic dm94ZWw6dm94ZWw=
Content-Length: 6
lang=e
让QLab发送HTTP
由于QLab可以通过网络发送任何纯文本,因此它可以从浏览器模拟HTTP GET或POST。对于设备来说,它接收到的消息看起来是一样的,无论它是来自QLab还是来自IRL人员单击Safari中的链接。
由于QLab不支持网络消息中的换行符,因此换行符必须用\r\n
表示。在QLab中,GET看起来像这样:
POST看起来像这样:
所有HTTP网络流量都通过TCP端口80。网络输出如下所示:
在浏览器中检查Web流量
所有现代浏览器都有内置的开发工具,用于检查哪些信息正在发送到服务器或从服务器发送。在Safari中,可以通过转到Settings...
Advanced
并选中Show Develop menu in menu bar
来启用开发人员工具。
按Option
+ command
+ i
打开Web Inspector。导航至“网络”选项卡。检查器右上角的垃圾桶图标将清除所有以前流量的列表。
单击网页上的按钮或链接。产生的流量将显示在列表中。
右键单击列表项将显示一个选项Copy HTTP Request
。这是您的浏览器发送到设备的完整HTTP消息,其中包含一堆您可能不需要的无关行。