Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Curl 使用ESP8266请求卷曲_Curl_Arduino_Esp8266_Pushbullet - Fatal编程技术网

Curl 使用ESP8266请求卷曲

Curl 使用ESP8266请求卷曲,curl,arduino,esp8266,pushbullet,Curl,Arduino,Esp8266,Pushbullet,我对编程(ESP8266)相当陌生。 现在我把不同博客的代码放在一起,以便从Pushbullet接收(!)推送(消息)。 由于以下原因,发送已经非常有效: Pushbullet中的卷曲示例为: curl——标题“访问令牌:”\ --标题“内容类型:应用程序/json”\ --数据二进制“{”正文“:“太空电梯,火星超级环,太空模型S(模型空间?),”标题“:“太空旅行想法”,“类型“:“注”}”\ --请帖\ https://api.pushbullet.com/v2/pushes 以及Ar

我对编程(ESP8266)相当陌生。
现在我把不同博客的代码放在一起,以便从Pushbullet接收(!)推送(消息)。
由于以下原因,发送已经非常有效:

Pushbullet中的卷曲示例为:

curl——标题“访问令牌:”\
--标题“内容类型:应用程序/json”\
--数据二进制“{”正文“:“太空电梯,火星超级环,太空模型S(模型空间?),”标题“:“太空旅行想法”,“类型“:“注”}”\
--请帖\
https://api.pushbullet.com/v2/pushes
以及Arduino/ESP8266的“翻译”:

String请求=String(“POST”)+url+“HTTP/1.1\r\n”+
主机:“+push\u bullet\u Host+”\r\n+
“用户代理:ESP8266/NodeMCU 0.9\r\n”+
“接受:*/*\r\n”+
“内容类型:application/json\r\n”+
内容长度:“+body.Length()+”\r\n+
访问令牌:“+api\U令牌+”\r\n\r\n”+
身体;
安全客户端打印(req);
因此,我现在要做的是从Pushbullet请求最新消息。
cURL中的示例是:

curl——标题“访问令牌:”\
--数据urlencode active=“true”\
--在=“1.4e+09”之后修改数据urlencode\
--得到\
https://api.pushbullet.com/v2/pushes
我想让它工作的方法是:

String请求=String(“GET”)+url+“HTTP/1.1\r\n”+
主机:“+push\u bullet\u Host+”\r\n+
“用户代理:ESP8266/NodeMCU 0.9\r\n”+
“接受:*/*\r\n”+
“活动=\”真实\“\r\n”+
“在=\“1496508764\”之后修改\u\r\n”+
“访问令牌:”+api\U令牌+“\r\n\r\n”;
安全客户端打印(req);
但我只收到以下信息:

>HTTP/1.1200 OK>>
X-Ratelimit-Reset:149655364>>
内容类型:application/json;字符集=utf-8>>
X-Ratelimit-Limit:16384>>
X-费率限制-剩余:16384>>
X-Cloud-Trace-Context:Blalba>>
日期:2017年6月3日星期六18:05:06 GMT>>
服务器:谷歌前端>>
内容长度:13626>>
我非常感谢任何想法或解决方案。

active=“true”
modified\u after=“1496508764”
都不是有效的标题。
您甚至不希望它们出现在标题中,因为它们应该是查询参数

您应该将这些参数附加到URL

String request=String(“GET”)+url+“?active=true&modified_after=1.4e%2B09 HTTP/1.1\r\n”+
主机:“+push\u bullet\u Host+”\r\n+
“用户代理:ESP8266/NodeMCU 0.9\r\n”+
“接受:*/*\r\n”+
“访问令牌:”+api\U令牌+“\r\n\r\n”;
如果运行
-v
-verbose
选项,您可以看到
curl
命令发送和接收的内容:

curl --header 'Access-Token: <your_access_token_here>' \
     --data-urlencode active="true" \
     --data-urlencode modified_after="1.4e+09" \
     --get -v\
     https://api.pushbullet.com/v2/pushes
curl——标题“访问令牌:”\
--数据urlencode active=“true”\
--在=“1.4e+09”之后修改数据urlencode\
--get-v\
https://api.pushbullet.com/v2/pushes
有了这个,你会看到:

* ... TLS stuff ...
> GET /v2/pushes?active=true&modified_after=1.4e%2B09 HTTP/1.1
> Host: api.pushbullet.com
> User-Agent: curl/7.42.1
> Accept: */*
> Access-Token: <your_access_token_here>
>
< ... Response headers ...
*。。。TLS的东西。。。
>GET/v2/push?active=true和modified_after=1.4e%2B09 HTTP/1.1
>主持人:api.pushbullet.com
>用户代理:curl/7.42.1
>接受:*/*
>访问令牌:
>
< ... 响应标题。。。

您如何显示服务器的响应?13k对于ram来说可能太多了,这取决于ESP上运行的其他内容。。。此外,您还可以使用ESP8266HTTPClient示例,而不是手动生成请求数据包。