如何通过端口80发送HTTP命令

时间:2016-06-14 03:43:26

标签: sockets http tcp port

Breif描述我想要完成的事情。所以我正在使用Crestrons Simpl +软件。我的工作是创建一个名为QT Pro的声音掩蔽系统的模块。现在,QT Pro有一个API,您可以通过HTTP控制它。我需要一种通过HTTP与QT Pro建立连接的方法(我有我需要的一切,IP,用户名,密码)。

问题是什么?我刚开始使用这种语言。不幸的是,没有我想要的文档,否则我不会在这里。我知道我需要通过端口80上的TCP创建套接字连接。我只是不知道我应该通过它发送什么。

这是一个例子: http://username:password@address/cmd.htm?cmd=setOneZoneData&ZN=Value&mD=Value &安培; MN =值及安培; auxA =值及安培; auxB =值及安培; AUTOR =值

如果我将其放入URL框中,并正确填写它。那么它会改变我指定的值。我应该发送整件事吗?或者只是在cmd.htm之后?或者是否有其他方式我应该发送数据?我想远离TCP / IP模块,所以我可以将它们保存在同一个模块中。

感谢。

1 个答案:

答案 0 :(得分:0)

您发送

GET /cmd.htm?cmd=setOneZoneData&ZN=Value&mD=Value&mN=Value&auxA=Value&auxB=Value&autoR=Value HTTP/1.1
Host: address
Connection: close

(以几个换行结束。)

如果您需要使用HTTP基本身份验证,那么还要包含类似

的标头
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=

其中乱码是base64编码的用户名:密码。

但是肯定有一些机制可以为你打开HTTP连接吗?只是盲目地抛出这样的标题,并希望响应是你所期望的并不强大,至少可以说。

要查看您的请求和响应的情况,一个很棒的工具是netcat(或telnet,就此而言。)

在端口80上nc address 80连接到服务器address,然后粘贴您的HTTP请求:

GET /cmd.htm HTTP/1.1
Host: address
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Connection: close

看看会有什么回来。 SOMETHING应该回来了。 (请记住以两个换行符结束。)

要查看当您执行有效操作时浏览器发送的请求,您可以这样听:nc -l -p 8080。 然后像以前一样将浏览器引导到localhost:8080以及其余的URL,您将看到发送的请求。 (然后您可以回来查看浏览器如何处理响应。)