我使用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