1

I use Arduino YUN for IoT project.

I have a web service which requires headers and bodies, and I want to post data from arduino.

Default HttpClient library supports put, get and delete methods but doesn't support post method.

Any suggestion would be great. Thanks.

ReshaD
  • 936
  • 2
  • 18
  • 30
user3817558
  • 91
  • 1
  • 12
  • Please, read [this (how to ask)](http://stackoverflow.com/help/how-to-ask) and [this (mcve)](http://stackoverflow.com/help/mcve) before asking, as those will help you get more and better answers from the community. – Bonatti Jul 21 '16 at 14:23

2 Answers2

0

You can use the Process class to send the POST via curl (which is a part of OpenWRT on Arduino YÚN).

Example from 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();
}
Laurenz
  • 1,810
  • 12
  • 25
0

Maybe you have an old version of the Bridge library. The code I am seeing in HttpClient.h supports 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();
aimass
  • 408
  • 5
  • 11