0

I'm trying to send a http post to my server from an esp8266-Wifi (I use the ESP8266 library)

I check all my http post format, and I guess is okay... but at the response, the monitor serial answer me like this:

Requesting POST: HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: 2017年6月10日 23:12:48 GMT
Connection: close
Content-Length: 339
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request - Invalid Header</h2>
<hr><p>HTTP Error 400. The request has an invalid header name.</p>
</BODY></HTML>
closing connection

and this is my code:

#include <ESP8266WiFi.h>
const char* ssid = "Putostodosmenosyo";
const char* password = "CetriX.2016%Gdl";
const char* host = "187.201.44.110";
const String Cadenadatos = "info=Micanton|2017年06月09日%2012:00|25" ;
//const String Tamano = String(Cadenadatos.length()) ;
const String postiu = "POST /wsCo2Keellingv1002/wsCo2Keelling.asmx/GuardaInfoArduino HTTP/1.1\r\nHost:187.201.44.110:80\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length:144\r\n\r\n?info="+String(Cadenadatos)+"\n" ;
const String postam = String(postiu);
void setup() {
 Serial.begin(9600);
 delay(100);
 // We start by connecting to a WiFi network
 Serial.println();
 Serial.println();
 Serial.print("Connecting to ");
 Serial.println(ssid);
 WiFi.begin(ssid, password);
 while (WiFi.status() != WL_CONNECTED) {
 delay(500);
 Serial.print(".");
 }
 Serial.println("");
 Serial.println("WiFi connected");
 Serial.println("IP address: ");
 Serial.println(WiFi.localIP()); 
 delay(2000) ;
}
void loop() {
 WiFiClient client;
 const int httpPort = 80;
 if (!client.connect(host,httpPort)) {
 Serial.println("Conexion fallida");
 return;
 }
 //String data = "pst=temperature>" + String(random(0,100)) +"||humidity>" + String(random(0,100)) + "||data>text";
 Serial.print("Requesting POST: ");
 // Send request to the server:
 //client.println("POST /wsCo2Keellingv1002/wsCo2Keelling.asmx/GuardaInfoArduino HTTP/1.1");
 //client.println();
 //client.println("co2kelling.hopto.org") ;
 client.println("POST /wsCo2Keellingv1002/wsCo2Keelling.asmx/GuardaInfoArduino HTTP/1.1");
 client.println("Host: co2kelling.hopto.org");
 client.println("Content-Type: application/x-www-form-urlencoded");
 client.print("Content-length: ");
 client.print(postiu.length());
 client.println();
 client.print(String(Cadenadatos));
 while(client.connected())
 {
 while(client.available())
 //String line = client.readStringUntil('\r') ;
 Serial.write(client.read()) ;
 }
 /*delay(500); // Can be changed
 if (client.connected()) { 
 client.stop(); // DISCONNECT FROM THE SERVER
 }*/
 Serial.println();
 Serial.println("closing connection");
 delay(5000);
}

NOTE: this is my fixed url http://187.201.44.110/wsCo2Keellingv1002/wsCo2Keelling.asmx/GuardaInfoArduino?info=Micanton|2017年06月09日%2012:00|25

EDIT

This is my Post format:

POST /wsCo2Keellingv1002/wsCo2Keelling.asmx/GuardaInfoArduino HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded
Content-Length: length
info=string
asked Jun 10, 2017 at 23:15

1 Answer 1

1

You are lacking the required blank line between the headers and the content. Also your content length is wrong.

Change

client.print(postiu.length());

Into

client.println(Cadenadatos.length());
answered Jun 10, 2017 at 23:34
2
  • "closing connection Requesting POST:" This is now the response. Commented Jun 10, 2017 at 23:45
  • I just spotted your content length uses the wrong value. See my updated answer. Commented Jun 11, 2017 at 9:08

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.