Auf die HTTPS-URL über die Konsolenanwendung mit C # @ zugreif

Ich möchte, dass meine Anwendung die angegebene HTTPS-URL erreicht und die CSV-Datei von dieser URL herunterlädt.

Ich habe den folgenden Code:

Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Security;
using System.IO;

namespace httpWebRequest_Test
{
    class Program
    {
        static void Main(string[] args)
        {
            var webAddr = "https://SFTP URL/xyz.csv";
            var httpWebRequest = (HttpWebRequest) WebRequest.Create(webAddr);
            httpWebRequest.ContentType = "text/csv";
            httpWebRequest.Method = "POST";
            var httpResponse = (HttpWebResponse) httpWebRequest.GetResponse();
            //ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
            ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications);
            Stream resStream = httpResponse.GetResponseStream();
        }

        AcceptAllCertification aac = new AcceptAllCertification();

        public static RemoteCertificateValidationCallback AcceptAllCertifications { get; set; }
    }
}

AcceptAllCertifications.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace httpWebRequest_Test
{
    class AcceptAllCertification
    {
        public bool AcceptAllCertifications(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certification, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors)
        {
            return true;
        }
    }
}

Ich erhalte zur Kompilierungszeit keinen Fehler. Zur Laufzeit wird jedoch der folgende Fehler angezeigt:

Die zugrunde liegende Verbindung wurde geschlossen: Konnte keine Vertrauensstellung für den sicheren SSL / TLS-Kanal herstellen.

Wie kann ich diesen Fehler beheben?

Edit 1:

Ich habe versucht, über den Browser auf dieselbe URL zuzugreifen. Der folgende Bildschirm wird angezeigt:

Nur nach dem Hinzufügen einer Ausnahme kann ich fortfahren.

Edit 2:

Nach den folgenden Antworten von @AndrewSilver und @ Übercoder wird der folgende Fehler angezeigt:

Der Remote-Server hat einen Fehler zurückgegeben: (411) Länge Erforderlich

Danach habe ich hinzugefügthttpWebRequest.ContentLength = 0;, was mich zu folgendem Fehler führte:

Der Remoteserver hat einen Fehler zurückgegeben: (405) Methode nicht zulässig.

Danach habe ich hinzugefügthttpWebRequest.ContentLength = 100;, was mich zu folgendem Fehler führte:

ProtocolViolationException: Sie müssen einen Anforderungshauptteil angeben, wenn Sie ContentLength> 0 oder SendChunked == true festlegen. Rufen Sie dazu [Begin] GetRequestStream vor [Begin] GetResponse auf.

HINWEIS Jeder, der meine Antwort durch die Bereitstellung einer Lösung verbessertohne die Zertifikatvalidierung zu umgehen wird als akzeptiert markiert.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage