树莓派 RESTful 服务无法访问
(http://IP) (my ip of raspberry pi through which i can access it from browser ie webiopi)
我正在尝试调用webiopi的RESTful网络服务,像这样:
(IP)/GPIO/0/value/1
但总是出现这样的错误:
Error response
Error code: 404
Message: 0/value/1 Not Found.
Error code explanation: 404 - Nothing matches the given URI.
而当我把它放在浏览器里,浏览整个网络应用时,一切都正常。
在后台,网络应用发送的请求和我们在控制台看到的是一样的。
可能的解决办法是什么呢?我的文件是不是放错地方了?
1 个回答
0
你的文件看起来放对地方了。
你不能通过浏览器的地址栏或者网址栏来POST数据。
你遇到的错误是因为GET格式不正确。
看这里……
这些是POST请求,用来设置值(用地址栏是行不通的——你会收到那个错误)
(IP)/GPIO/24/function/OUT
(IP)/GPIO/24/value/1
这些是GET请求,用来获取值(用地址栏是可以的——试试看)
(IP)/GPIO/24/function
(IP)/GPIO/24/value
那么,如何在浏览器中POST数据(但不是用地址栏)呢?
可以使用一个REST客户端(比如浏览器插件——POSTMAN):
还有其他选择吗?有的:
1 - 创建一个带有表单和POST按钮的HTML页面;
或者
2 - 使用RPi终端控制台(通过SSH、VNC、直接连接、UART等):
curl -X POST http://(IP)/GPIO/24/function/OUT
curl -X POST http://(IP)/GPIO/24/value/1
对于那些不熟悉WebIOPi界面的人来说,执行这些REST命令后,它会变成这样: