GET Request not working on Arduino UNO R4 WiFi

Dear Community,

i have a problem with my Arduino UNO R4 WiFi.
there is a demo script in it: WiFIWebClientSSL,

/*
  TLS WiFi Web client

  Remeber to update the CA certificates using CertificateUploader sketch
  before using this sketch.

*/

#include "WiFiS3.h"
#include "WiFiSSLClient.h"
#include "IPAddress.h"

#include "arduino_secrets.h" 

///////please enter your sensitive data in the Secret tab/arduino_secrets.h
char ssid[] = SECRET_SSID;        // your network SSID (name)
char pass[] = SECRET_PASS;        // your network password (use for WPA, or use as key for WEP)

int status = WL_IDLE_STATUS;
// if you don't want to use DNS (and reduce your sketch size)
// use the numeric IP instead of the name for the server:
//IPAddress server(74,125,232,128);  // numeric IP for Google (no DNS)
char server[] = "www.google.com";    // name address for Google (using DNS)

// Initialize the Ethernet client library
// with the IP address and port of the server
// that you want to connect to (port 80 is default for HTTP):
WiFiSSLClient client;

/* -------------------------------------------------------------------------- */
void setup() {
/* -------------------------------------------------------------------------- */  
  //Initialize serial and wait for port to open:
  Serial.begin(115200);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }
  
  // check for the WiFi module:
  if (WiFi.status() == WL_NO_MODULE) {
    Serial.println("Communication with WiFi module failed!");
    // don't continue
    while (true);
  }
  
  String fv = WiFi.firmwareVersion();
  if (fv < WIFI_FIRMWARE_LATEST_VERSION) {
    Serial.println("Please upgrade the firmware");
  }
  
  // attempt to connect to WiFi network:
  while (status != WL_CONNECTED) {
    Serial.print("Attempting to connect to SSID: ");
    Serial.println(ssid);
    // Connect to WPA/WPA2 network.
    status = WiFi.begin(ssid, pass);
     
    // wait 10 seconds for connection:
    delay(10000);
  }
  
  printWifiStatus();
 
  Serial.println("\nStarting connection to server...");
  // if you get a connection, report back via serial:
  
  if (client.connect(server, 443)) {
    Serial.println("connected to server");
    // Make a HTTP request:
    client.println("GET / HTTP/1.1");
    client.println("Host: www.google.com");
    client.println("Connection: close");
    client.println();
  }
}

/* just wrap the received data up to 80 columns in the serial print*/
/* -------------------------------------------------------------------------- */
void read_response() {
/* -------------------------------------------------------------------------- */  
  uint32_t received_data_num = 0;
  while (client.available()) {
    /* actual data reception */
    char c = client.read();
    /* print data to serial port */
    Serial.print(c);
    /* wrap data to 80 columns*/
    received_data_num++;
    if(received_data_num % 80 == 0) { 
      Serial.println();
    }
  }  
}

/* -------------------------------------------------------------------------- */
void loop() {
/* -------------------------------------------------------------------------- */  
  read_response();

  // if the server's disconnected, stop the client:
  if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting from server.");
    client.stop();

    // do nothing forevermore:
    while (true);
  }
}

/* -------------------------------------------------------------------------- */
void printWifiStatus() {
/* -------------------------------------------------------------------------- */  
  // print the SSID of the network you're attached to:
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());

  // print your board's IP address:
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);

  // print the received signal strength:
  long rssi = WiFi.RSSI();
  Serial.print("signal strength (RSSI):");
  Serial.print(rssi);
  Serial.println(" dBm");
}

which also works unchanged for the website www.google.com with SSL on Port 443.
However, I assumed that this script can in principle call "any" website using the GET method and SSL.
Unfortunately, that doesn't seem to work.
If I enter any other URL which is composed:
(Ex:) www.anyurl.com/subfolder/anothersubfolder/12345
the whole story doesn't work anymore.
I either get a register error (possibly because of the link length?) (serial monitor) or just a connect and subsequent disconnect from the server.
The link is NEVER called up.
I tested this via shorturl.at; the links created there count how often they were accessed.
The counter stays at 0.

Can someone explain to me how I can create a GET method for any domain, or what would need to be changed in the existing script?

I checked the links with Postman, they can generally be accessed via GET and return correct bodies.

I can't use the POST method because the links I want to open already reject it in Postman.

and you did

if (client.connect("www.anyurl.com", 443)) {
    Serial.println("connected to server");
    // Make a HTTP request:
    client.println("GET /subfolder/anothersubfolder/12345 HTTP/1.1");

?

So far I had only passed the "server" as a char array; but according to your question I have adapted it on a trial basis, it can also be written directly into the function.
But makes no difference.
In the GET I passed the path as you described, yes.
I then get the following output:

12:02:44.479 -> Attempting to connect to SSID: H20global
12:02:55.012 -> SSID: H20global
12:02:55.153 -> IP Address: 192.168.10.100
12:02:55.232 -> signal strength (RSSI):-55 dBm
12:02:55.232 -> 
12:02:55.232 -> Starting connection to server...
12:03:05.322 -> 
12:03:05.332 -> disconnecting from server.

I even uploaded the SSL certificate to the arduino as i thought, that may be the solution... it is not.

oh my god...
The solution was much simpler, i am SO sorry...
The WLAN modul was not up to date, since the UNO r4 WiFi is a very new machine.
I can update via the Arduino IDE 2.1.1 (nightly) or via batch script... and now my script runs fine.
So the problem never had been in the code -.-

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