Hallo Horst,
nicht ganz: Du könntest einen Objekt, das als WebRequest definiert ist, ohne weiteres ein Objekt der Klasse HttpWebRequest zuweisen, aber nicht umgekehrt.
Das geht in VO aber auch nicht, wenn die Methode/Funktion streng typisiert ist und der Rückgabewert nicht vom Typ "object" ist.
Das mit dem Casten sagt dem Compiler nur: hör mal, das, was hier der Rückgabewert ist, ist ein Objekt der Klasse HttpWebRequest.
Damit ist der Compiler zufrieden.
Wenn zur Laufzeit das Objekt aber nicht den Typ hat, auf den gecastet wird, sondern einen inkompatiblen Typ, bekommst Du einen Laufzeitfehler.
Was die Fehlermeldung betrifft: Wie Deine Seite aufgerufen wird, ist vollkommen gleichgültig - es ist Dein Prozeß, der die Verbindung aufbaut. Und wenn das Zertifikat der aufgerufenen Seite korrekt ist, sollte das funktionieren - außer die aufgerufene Seite verlangt mindestens TLS 1.2.
Dann musst Du vor dem ersten Aufruf TLS 1.2 einschalten:
Code: Select all
System.Net.ServicePointManager.SecurityProtocol := System.Net.SecurityProtocolType.Tls12
Wolfgang