2016-07-21 14 views
1

Ich verwende Arduino YUN für IoT Projekt.Arduino YUN Rest API HTTP Beitrag

Ich habe einen Web-Service, der Header und Körper benötigt, und ich möchte Daten von arduino.

Standardeinstellung HttpClient Bibliothek unterstützt Put, Get und Delete-Methoden, unterstützt aber keine Post-Methode.

Jeder Vorschlag wäre großartig. Vielen Dank.

+0

Bitte lesen Sie [diese (wie fragen)] (http://stackoverflow.com/help/how-to- fragen Sie) und [this (mcve)] (http://stackoverflow.com/help/mcve) bevor Sie fragen, als diese werden Ihnen helfen, mehr und bessere Antworten von der Gemeinschaft zu bekommen. – Bonatti

Antwort

0

Sie können die Process Klasse verwenden, um die POST über curl (die ein Teil von OpenWRT auf Arduino YÚN ist) zu senden.

Beispiel von 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(); 
} 
0

Vielleicht haben Sie eine alte Version der Brücke Bibliothek. Der Code, den ich in HttpClient.h sehe unterstützt POST (Version 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();