树莓派 RESTful 服务无法访问

0 投票
1 回答
1059 浏览
提问于 2025-04-17 21:24
 (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命令后,它会变成这样:

在这里输入图片描述

撰写回答