用于命令行用户的PHP Web服务

时间:2017-03-29 08:02:05

标签: php web-services

我被赋予了编写Web服务以将数据从传感器推送到服务器数据库的任务。

我编写了一个PHP Web服务,它在GET中接受一些参数,处理数据并将数据存储在数据库中。

示例

http://www.example.com/pushDataService/index.php?arg1=<Data 1>&arg2=<Data 2>&arg3=<Data 3>

但我们的固件程序员想要一些他可以在命令行上测试的东西。 就像使用telnet进行SMTP通信一样

示例

Telnet mail.example.com 25
EHLO mail.example.com
AUTH LOGIN
UserName encrypted in base 64
Password encrypted in base 64
MAIL FROM:<test@example.com>
RCPT TO:<test@domain.com>
DATA this is a test message.

我可以让web服务像这样工作,他可以​​在命令行中进行握手过程,然后每个参数都是单独发送的,用户可以获得每个参数的响应吗?

请帮忙,我是PHP的新手,不知道像这样的(网络)服务!

谢谢

修改 我们已经在使用MQTT将数据推送到服务器,但我们需要另一台服务器来推送数据,这些服务器将作为SMTP邮件服务器和MQTT协议的组合工作...... SOAP Web服务会为我做这个工作吗?

1 个答案:

答案 0 :(得分:2)

http://www.example.com/pushDataService/index.php?arg1=<Data 1>&arg2=<Data 2>&arg3=<Data 3>请求可以完成,就像使用telnet进行SMTP通信一样:

Telnet www.example.com 80
GET /pushDataService/index.php?arg1=<Data 1>&arg2=<Data 2>&arg3=<Data 3> HTTP/1.1
Host: www.example.com
<CR>
<CR>

使用GET请求推送数据不是最好的主意。 PUT或POST请求更合适。首先,它不是幂等的,永远不应该被缓存,更重要的是 - 它在数据格式和大小方面更加灵活。发送json数据的POST请求可能看起来像

Telnet www.example.com 80
POST /pushDataService/index.php HTTP/1.1
Host: www.example.com
Content-Type: application/json; charset=utf-8
Content-Length: 57

{"arg1":"<Data 1>", "arg2":"<Data 2>", "arg3":"<Data 3>"}