Heim >Backend-Entwicklung >C++ >Wie kann ich mit WebRequest trotz SSL-Fehlern programmgesteuert auf HTTPS-Inhalte zugreifen?
Programmgesteuerter Zugriff auf SSL-verschlüsselte Inhalte über HTTPS mit WebRequest
Bei der Interaktion mit URLs über WebRequest sind Schwierigkeiten aufgrund der SSL-Verschlüsselung keine Seltenheit. Ziel dieses Artikels ist es, eine Lösung zur Bewältigung solcher Herausforderungen bereitzustellen.
Der von Ihnen bereitgestellte Codeausschnitt versucht, Inhalte von einer URL abzurufen, es tritt jedoch ein Fehler auf, wenn die URL das HTTPS-Protokoll verwendet. Um mit dieser Situation umzugehen, ist es wichtig, Ihren Code an SSL-verschlüsselte Inhalte anzupassen.
Die wichtigste Lösung liegt in der Einführung von ServicePointManager.ServerCertificateValidationCallback, einem Delegaten, der Ihnen die SSL-Zertifikatsvalidierung ermöglicht. Durch Überschreiben des Standardverhaltens können Sie den Code anweisen, alle Zertifizierungen zu akzeptieren, auch solche, die möglicherweise ungültig sind.
Um dies zu erreichen, fügen Sie die folgende Zeile hinzu, bevor Sie die Webanfrage stellen:
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications);
Dann erstellen Sie eine einfache Methode namens AcceptAllCertifications, um „true“ zurückzugeben:
public bool AcceptAllCertifications(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certification, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors) { return true; }
Mit diesen Änderungen kann Ihr Code auf Inhalte zugreifen und diese lesen von URLs, die HTTPS-Verschlüsselung verwenden, unabhängig von der Gültigkeit des Zertifikats.
Das obige ist der detaillierte Inhalt vonWie kann ich mit WebRequest trotz SSL-Fehlern programmgesteuert auf HTTPS-Inhalte zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!