Whi*_*uit 4 http-post esp8266 arduino-esp8266
我可以从浏览器输入此URL,输入凭据后,它会成功调用我的API http://172.16.0.40/rest/vars/set/1/12/666。
我正在尝试使用HTTPClient从ESP8266进行此操作。我的凭据是username:password,我使用了一个在线转换实用程序来获取dXNlcm5hbWU6cGFzc3dvcmQ =。
当执行时,以下返回错误701(不知道那是什么)。
HTTPClient http;
http.begin("172.16.0.40", 80, "/");
http.addHeader("Content-Type", "text/plain");
http.addHeader("Authorization", "dXNlcm5hbWU6cGFzc3dvcmQ=");
auto httpCode = http.POST("rest/vars/set/1/12/999");
Run Code Online (Sandbox Code Playgroud)
如果我注释掉Authorization标头,则会得到401,这是未经授权的访问。我究竟做错了什么?
您正在尝试http://172.16.0.40/使用rest/vars/set/1/12/999payload作为POST请求。
HTTP状态代码701不是标准代码,并且可能是服务器特定的。
您可能打算这样做:
HTTPClient http;
http.begin("172.16.0.40", 80, "/rest/vars/set/1/12/999");
http.addHeader("Content-Type", "text/plain");
http.addHeader("Authorization", "Basic dXNlcm5hbWU6cGFzc3dvcmQ=");
auto httpCode = http.POST(payload);
Run Code Online (Sandbox Code Playgroud)
如果要GET请求,请调用,http.GET()而不是,http.POST(payload)并且应该获得与浏览器内部相同的响应。
编辑:
并且@MaximilianGerhardt已经回答,您需要Basic在Authorization标题之前添加。
| 归档时间: |
|
| 查看次数: |
5733 次 |
| 最近记录: |