Arduino Giga Wifi to Influxdb

I tried this code to post random int to influxdb cloud2, but it failed to connect. However, when I use the same code to post the data to local server of the influxdb on 192.168.x.x:8086. It works perfectly.

#include <SPI.h>
#include <Ethernet.h>

// Network settings
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };  // Your MAC address
char server[] = "eu-central-1-1.aws.cloud2.influxdata.com";  // InfluxDB Cloud 2 server URL
int port = 443;  // HTTPS port for InfluxDB Cloud 2

// InfluxDB settings for Cloud 2
const char* organization = "MyOrg"; // Organization name
const char* token = "MyToken";
const char* bucket = "MyBucket";

// Ethernet client
EthernetClient client;

void setup() {
  // Initialize serial communication
  Serial.begin(9600);

  // Set the CS pin to 15
  Ethernet.init(15);

  // Initialize the Ethernet shield using DHCP
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
    for (;;);
  }

  // Give the Ethernet shield a second to initialize
  delay(1000);

  // Print out the IP address
  Serial.print("IP Address: ");
  Serial.println(Ethernet.localIP());

  // Start connection attempt
  if (connectToInfluxDB()) {
    Serial.println("Connected to InfluxDB Cloud 2");
  } else {
    Serial.println("Connection failed");
  }
}

void loop() {
  // Your main loop code here
  // Example: sendDataToInfluxDB();
  delay(10000);  // Example: Delay between sending data
}

bool connectToInfluxDB() {
  if (client.connect(server, port, "https")) {
    Serial.println("Connected to server");

    // Create the HTTPS POST request for InfluxDB Cloud 2
    String postStr = "POST /api/v2/write?org=" + String(organization) + "&bucket=" + String(bucket) + "&precision=s HTTP/1.1\r\n";
    postStr += "Host: " + String(server) + "\r\n";
    postStr += "Authorization: Token " + String(token) + "\r\n";
    postStr += "Connection: close\r\n";
    postStr += "Content-Type: text/plain; charset=utf-8\r\n";
    // Example: postStr += "Content-Length: " + String(data.length()) + "\r\n\r\n";
    // Example: postStr += data;

    // Send the HTTPS POST request
    client.println(postStr);  // Use println to send the complete request
    Serial.println("Sent data: ");
    Serial.println(postStr);

    // Wait for server response
    while (client.connected()) {
      if (client.available()) {
        String line = client.readStringUntil('\n');
        Serial.println(line); // Print server response for debugging
        if (line == "\r") {
          break;
        }
      }
    }

    // Check HTTPS status
    String status = client.readStringUntil('\n');
    Serial.println("HTTPS status: " + status); // Print HTTPS status for debugging
    if (status.indexOf("204") >= 0) {
      client.stop();
      return true;
    }
  } else {
    Serial.println("Connection failed");
  }
  client.stop();
  return false;
}

This is the serial debug return

IP Address: 192.168.0.62
Connected to server
Sent data: 
POST /api/v2/write?org=AquaZoa&bucket=Concentrata&precision=s HTTP/1.1
Host: eu-central-1-1.aws.cloud2.influxdata.com
Authorization: Token Fe6lpOm6ctZFNXQkKYGl9-Rr44lhDS_L7Cy2TQFubTGi4qszy6W3utJWa7mdkLl0L5Zr511N9tmjTcSLTsH3vQ==
Connection: close
Content-Type: text/plain; charset=utf-8

HTTP/1.1 400 Bad Request

Date: Mon, 08 Jul 2024 23:57:56 GMT

Content-Type: text/html

Content-Length: 248

Connection: close



HTTPS status: <html>

Connection failed