Insertar valor a sql server con HTTP Post request

Hola a todos!, este es mi primer post y espero que me puedan ayudar. Busque y leí por todos lados pero no logro resolverlo.

A modo de prueba, subi al Arduino un proyecto para tomar la lectura del sensor sonoro y por ESP8266 enviarlo a una base de datos que tengo configurada con SQL SERVER. Todo esto es local.

Este es mi código que tengo hasta ahora (para resumir, solo pongo loop):

include <ESP8266HTTPClient.h>
#include <ESP8266WiFi.h>



void setup() {
  Serial.begin(115200);                 
  WiFi.begin("SSID", "Password");  
 
  while (WiFi.status() != WL_CONNECTED) {  //Wait for the WiFI connection completion
 
    delay(500);
    Serial.print(".");
 
  }

}
void loop() {
  if(WiFi.status()== WL_CONNECTED){  
 
   HTTPClient http; 
   String clienteIngreso, valorIngreso, postData;
   
   int cliente = ESP.getChipId();
   Serial.println(cliente);
   Serial.println("");
   int valor = analogRead(A0);
   Serial.println(valor);
   Serial.println("");

   clienteIngreso = String(cliente);
   valorIngreso = String(valor);
 
   http.begin("https://localhost/ApiSensor/api/sensores");
   http.addHeader("Content-Type", "application/x-www-form-urlencoded");
 
   int httpCode = http.POST("cliente="+clienteIngreso+"&valor="+valorIngreso");
   String payload = http.getString();
 
   Serial.println(httpCode); 
   Serial.println(payload);    
 
   http.end();  
 
 }else{
 
    Serial.println("Error en la conexción WiFi");   
 
 }
 
  delay(30000);

}

Se coneta bien al WiFi, pero el código HTTP que me devuelve es -1. Me imagino que debe ser el permiso en la base de datos. Probé el código en Postman y funciona de maravilla el HTTP Post.

Alguna idea?

Gracias desde ya!.

EDIT: ingreso el setup

Habitualmente se pide que se postee todo el código no partes del mismo. Nosotros necesitamos ver todo el programa y no la parte que tu crees es responsable del problema, porque si lo fuera, entonces lo resolverías tu solo sin la ayuda de este foro no es asi?

veamos tu problema:
Esto esta mal.

int httpCode = http.POST("cliente=clienteIngreso&valor=valorIngreso");

Esta linea de código esta mal armada
Ahi lo que le estas enviado al Server es justo lo que esta entre "" y creo que no es la idea

usa esto

como has definido a clienteIngreso y valorIngreso como Strings, prueba de este modo

int httpCode = http.POST("cliente="+clienteIngreso+"&valor="+valorIngreso);

Gracias por responder.

como has definido a clienteIngreso y valorIngreso como Strings, prueba de este modo

int httpCode = http.POST("cliente="+clienteIngreso+"&valor="+valorIngreso);

Modifique el código tal cual tu propuesta pero sigue devolviendo -1 como código. Si hubiese algo mal en la petición, me imagino que debería devolver "Bad Request"...

Sigo atento a las respuestas para ver si puedo solucionarlo.

No tienes forma de ver en tu servidor PHP sobre lo que esta recibiendo?

http.begin("https://localhost/ApiSensor/api/sensores");

porque usas una conexión segura? https?

creo que por ahi anda tu error.

Mira este ejemplo

HTTPClient http;
http.begin("http://jsonplaceholder.typicode.com/posts");
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
http.POST("title=foo&body=bar&userId=1");
http.writeToStream(&Serial);
http.end();

basicamente similar al tuyo.
Prueba con esta linea

http.begin("http://localhost/ApiSensor/api/sensores");

y luego esto

int httpCode = http.POST("cliente=1234&valor=512");

Probé con el código de ejemplo ya que antes lo había encontrado navegando y me devuelve 201. Pero al trasladar ese ejemplo a mi necesidad me da el famoso -1

  1. No se que "quien" me devuelve el -1. Si es HTTP, o si es la librería HTTPClient

2)Modifique a http.begin("http://localhost/ApiSensor/api/sensores?"); Pero sigue apareciendo el -1

Para agregar mas información: cree la base de datos SQL SERVER en un servidor remoto. Hice un POST con POSTMAN y resulta exitoso el ingreso de los datos. De forma local hice una Web Api (.net Core 2.2) para manejar las peticiones a la base de datos y también funciona bien.

Seguiré atento a las respuestas.

Se te escapó o asi lo has puesto

http.begin("http://localhost/ApiSensor/api/sensores?");

me refiero al ?

Eso no debería estar.

me refiero al ?

Eso no debería estar.

En realidad probe de las dos formas. Sin el "?" y con el "?". Pero aún me sigue mostrando el -1.

Lo que no se como hacer, es ver que petición le llega al servidor. A la webApi la tengo funcionando en IIS localmente, capaz que por ahí podría ver algo. Que opinas?

Gracias

Efectivamente uso la segunda opción. Probé con el "?" porque la verdad es que intente para ver que pasaba, casi resignado de no poder avanzar.

De lo que pude leer, el error -1 es por la conexión rechazada, probé pasando el "footprint" del certificado y aún sigo teniendo el error.

Voy a cambiar la librería para seguir probando. Haré una respuesta apenas tenga solucionado este inconveniente.

Gracias y saludos.