title: HTTP POST using Arduino ESP8266 SparkFun Shield
body: <p>I'm trying to send a POST HTTP to a local server running node.js. The GET request works well. The POST using Postman (local) works well, I don't have any firewall. But I can't run it with Arduino.</p>
  
  <p>The code I'm using is a simple SparkFun Client example in which I only changed GET to POST:</p>
  
  <pre><code>void clientDemo() {
    // To use the ESP8266 as a TCP client, use the 
    // ESP8266Client class. First, create an object:
    ESP8266Client client;
  
    // ESP8266Client connect([server], [port]) is used to 
    // connect to a server (const char * or IPAddress) on
    // a specified port.
    // Returns: 1 on success, 2 on already connected,
    // negative on fail (-1=TIMEOUT, -3=FAIL).
    int retVal = client.connect(destServer, 5000);
    if (retVal == -1) {
      Serial.println(F("Time out"));
      return;
    } else if(retVal == -3) {
      Serial.println(F("Fail connection"));
      return;
    } else if(retVal == 1) {
      Serial.println("Connected with server!");
    }
  
    // print and write can be used to send data to a connected
    // client connection.
    client.print(httpPost);
  
    // available() will return the number of characters
    // currently in the receive buffer.
    while (client.available())
      Serial.write(client.read()); // read() gets the FIFO char
  
    // connected() is a boolean return value - 1 if the 
    // connection is active, 0 if it's closed.
    if (client.connected())
      client.stop(); // stop() closes a TCP connection.
  }
  </code></pre>
  
  <p>And the httpPost is:</p>
  
  <pre><code>const String httpPost = "POST /meteo HTTP/1.1\n"
                          "Host: 192.168.0.131:5000\n"
                          "User-Agent: Arduino/1.0\n"
                          "Connection: close\n"
                          "Content-Type: application/x-www-form-urlencoded;\n"
                            "windspeedmph=0&amp;winddir=0&amp;humidity=0&amp;temp=0&amp;pressure=0\n";
  </code></pre>
  
  <p>All I get in the serial monitor is "Connected with server!"...</p>
  
  <p>What am I doing wrong?</p>