Data sent api server with ethernet 400 bad requests

#include <SPI.h>
#include <Ethernet.h>
#define TOKEN "token"

byte mac[] = {

0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};

IPAddress ip(10, 3, 130, 160);

IPAddress myDns(10, 0, 80, 8);
EthernetClient client;

//char server[] = "www.arduino.cc"; // also change the Host line in httpRequest()
IPAddress server(10, 0, 50, 107);

unsigned long lastConnectionTime = 0;
const unsigned long postingInterval = 10*1000;
void setup() {

Serial.begin(9600);

while (!Serial) {

; // wait for serial port to connect. Needed for native USB port only

}

Serial.println("Initialize Ethernet with DHCP:");

if (Ethernet.begin(mac) == 0) {

Serial.println("Failed to configure Ethernet using DHCP");
if (Ethernet.hardwareStatus() == EthernetNoHardware) {
  Serial.println("Ethernet shield was not found.  Sorry, can't run without hardware. :(");
  while (true) {
    delay(1); // do nothing, no point running without Ethernet hardware

  }

}

if (Ethernet.linkStatus() == LinkOFF) {

  Serial.println("Ethernet cable is not connected.");

}



Ethernet.begin(mac, ip, myDns);

Serial.print("My IP address: ");

Serial.println(Ethernet.localIP());

} else {

Serial.print("  DHCP assigned IP ");

Serial.println(Ethernet.localIP());

}

delay(1000);
}

void loop() {

if (client.available()) {
char c = client.read();

Serial.write(c);

}

if (millis() - lastConnectionTime > postingInterval) {

httpPost();

}

}

void httpPost() {

client.stop();

// if there's a successful connection:

if (client.connect(server, 80)) {

Serial.println("connecting...");

client.println("POST /admin/inverters/1 HTTP/1.1");
Serial.println("POST /admin/inverters/1 HTTP/1.1");
client.println("Host: 10.0.50.107");
Serial.println("Host: 10.0.50.107");
client.println("User-Agent: python-request/2.21.0");
Serial.println("User-Agent: python-requests3/1.8");
client.println("Accept-Encoding: gzip, deflate");
Serial.println("Accept-Encoding: gzip, deflate");
client.println("Accept: */*");
Serial.println("Accept: */*");
client.println("Connection: keep-alive");
Serial.println("Connection: keep-alive");
client.println("Authorization: Bearer token");
 Serial.println("Authorization: Bearer token");
client.println("Content-Type: application/json");
Serial.println("Content-Type: application/json");
String out="{\"client_date\": \"2021-09-13 12:22:00\", \"ac_voltage\": 100, \"ac_current\": 600, \"voltage_1\": 50, \"current_1\": 67, \"voltage_2\": 50, \"current_2\": 67}";
//Serial.println(out.length());
client.println("Content-Length: 144");
Serial.println("Content-Length: 144");
client.println(out);
Serial.println(out);
client.println("Connection: close");
Serial.println("Connection: close");
client.println();


lastConnectionTime = millis();

} else {

// if you couldn't make a connection:

Serial.println("connection failed");

}
}

it is solar system data sent to api server /laravel/. but always 400 bad requests. how discuss is it

Please follow the advice given in the link below when posting code. Use code tags (the </> icon above the compose window) to make it easier to read and copy for examination

What does the server say in addition to the 400?

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.