我使用Arduino YUN
为IoT
项目。Arduino YUN Rest Api HTTP Post
我有需要标题和正文的web服务,我想从arduino
发布数据。
默认HttpClient
库支持put,get和delete方法,但不支持post方法。
任何建议都会很棒。谢谢。
我使用Arduino YUN
为IoT
项目。Arduino YUN Rest Api HTTP Post
我有需要标题和正文的web服务,我想从arduino
发布数据。
默认HttpClient
库支持put,get和delete方法,但不支持post方法。
任何建议都会很棒。谢谢。
您可以使用Process
类通过curl
(它是ArduinoYÚN上的OpenWRT的一部分)发送POST
。从http://starter-kit.nettigo.eu/2014/arduino-yun-sending-data-thingspeak-post/
例子:
void postToThingSpeak(String key, float value[]) {
Process p;
String cmd = "curl --data \"key="+key;
for (int i=0;i<ARRAY_SIZE;i++) {
cmd = cmd + "&field"+ (i+1) + "=" + value[i];
}
cmd = cmd + "\" http://api.thingspeak.com/update";
p.runShellCommand(cmd);
Console.println(cmd);
p.close();
}
也许你有一个老版本的大桥图书馆。我在HttpClient.h看代码的支持POST(1.6.3版本):
unsigned int get(String &url);
unsigned int get(const char * url);
void getAsynchronously(String &url);
void getAsynchronously(const char * url);
unsigned int post(String &url, String &data);
unsigned int post(const char * url, const char * data);
void postAsynchronously(String &url, String &data);
void postAsynchronously(const char * url, const char * data);
unsigned int patch(String &url, String &data);
unsigned int patch(const char * url, const char * data);
void patchAsynchronously(String &url, String &data);
void patchAsynchronously(const char * url, const char * data);
unsigned int put(String &url, String &data);
unsigned int put(const char * url, const char * data);
void putAsynchronously(String &url, String &data);
void putAsynchronously(const char * url, const char * data);
void setHeader(String &header);
void setHeader(const char * header);
boolean ready();
unsigned int getResult();
void noCheckSSL();
void checkSSL();
请阅读[这(如何问)(http://stackoverflow.com/help/how-to-问)和 [this(mcve)](http://stackoverflow.com/help/mcve), 这些将帮助您从社区获得更多更好的答案。 – Bonatti