Webseite auslesen funktioniert nicht

Der Arduino Mega soll vom Webserver die Webseite auslesen.
Leider bekomme ich immer diese Fehlermeldung.
Ich weiß leider nicht weiter, wo der Fehler sein könnte.
Ich wäre sher dankbar, wenn jemand mir helfen könnte.

  1. Serial Ausgabe, 2. Ist der Code und 3. PHP code

Serial ausgabe:

Base64 example
Input string is:    test:test

Encoded string is:    dGVzdDp0ZXN0
verbinde, bitte warten...
verbunden
HTTP/1.1 400 Bad Request
Connection: Keep-Alive
Content-Type: text/xml; charset=UTF-8
Date: Fri, 02 Feb 2018 10:38:07 GMT
Transfer-Encoding: chunked
Content-Language: en-US
Server: Plugwise Core 2.1 (revision 3436)
9e
<?xml version="1.0" encoding="UTF-8"?>
<error>
    <code>400 Bad Request</code>
    <reason-phrase>Badly formatted initial request line</reason-phrase>
</error>
0
Verbindung getrennt

Code:

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

// Name of the server
IPAddress server(192,168,2,245); 
// Path 
const char Path[] = "/core/appliances";
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
//(Port 80 ist für HTTP):
EthernetClient client;

void setup()
{
  // initialize serial communications at 9600 bps:
  Serial.begin(9600); 

  while (Ethernet.begin(mac) != 1)
  {
    Serial.println("Error getting IP address via DHCP, trying again...");
    delay(15000);
  } 
  Serial.println("Base64 example");

  // encoding
  char inputString[] = "test:test";
  int inputStringLength = sizeof(inputString);

  Serial.print("Input string is:\t");
  Serial.println(inputString);
  Serial.println();

  int encodedLength = Base64.encodedLength(inputStringLength);
  char encodedString[encodedLength];
  Base64.encode(encodedString, inputString, inputStringLength);
  Serial.print("Encoded string is:\t");
  Serial.println(encodedString);  

  Serial.println("verbinde, bitte warten...");

  if (client.connect(server, 80)) 
  {
    Serial.println("verbunden");   
    client.println("GET http://192.168.2.245/core/appliances & HTTP/1.1");
    client.print("Host: ");
    client.println(server);
    client.println("Content-Type: application/xml");
    client.print("Content-length: ");
    client.print(encodedLength);
    client.print("Authorization: Basic ");
    client.println(encodedString);
    client.println("Connection: close");
    client.println();
  }
  else 
  {
    Serial.println("connection failed");
  } 
} 

void loop()
{
   if (client.available()) 
   {
    char c = client.read();
    Serial.print(c);
   }
   if (!client.connected()) 
   {
    Serial.println();
    Serial.println("Verbindung getrennt");
    client.stop();
    while (true);
   }
}

mein PHP code funktioniert ohne Probleme:

function getDataStretch($ip,$id,$path)						
{
    $url ="http://" . $ip . $path;
    $header = [
        'Host: ' . $ip,
        'Authorization: Basic ' . base64_encode('stretch:' . $id),
    ];
    $options = [
        'http'=>[
            'protocol_version' => '1.1',
            'method' => 'GET',
            'header'=>implode("\n",$header)
        ]
    ];
    $context = stream_context_create($options);
    return file_get_contents($url, false, $context);
}															

function read_WEBStretchdata()								
{
    global $StretchIp,$StretchId,$StretchPath;							
    $Webdata = getDataStretch($StretchIp,$StretchId,$StretchPath);		
    return $Webdata;													
}				

$data_old = read_WEBStretchdata();	   //Hier ist der Inhalt von der Webseite!!!!!
client.println("GET http://192.168.2.245/core/appliances & HTTP/1.1");

Das sollte wahrscheinlich so aussehen:

client.println("GET /core/appliances HTTP/1.1");

Auf der GET-Zeile steht keine URL sondern nur der Pfad (und allfällige Parameter). Woher Du das Ampersand (&) hast, ist mir rätselhaft.