Arduino YUN Rest Api HTTP Post

时间:2016-07-21 13:52:19

标签: arduino iot arduino-yun

我将Arduino YUN用于IoT项目。

我有一个需要标题和正文的网络服务,我想发布arduino的数据。

默认HttpClient库支持put,get和delete方法,但不支持post方法。

任何建议都会很棒。感谢。

2 个答案:

答案 0 :(得分:0)

您可以使用Process类通过POST发送curl(这是ArduinoYÚN上OpenWRT的一部分)。

来自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();
}

答案 1 :(得分:0)

也许你有一个旧版本的Bridge库。我在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();