Http Download asynchron nicht möglich?

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Radinator.

    Http Download asynchron nicht möglich?

    Hallo Leute,

    da ich in einem Vorherigen Post eine Frage zum FTP Download hatte und mir dort gesagt wurde http(s) sei besser probiere ich mich natürlich nun auch daran.
    Nur habe ich folgendes Problem:

    Ich kann die Datei zwar Downloaden lassen, wenn ich es aber im asynchronen Modus probiere bekomme ich eine 403 Fehlermeldung...

    C#-Quellcode

    1. string url = "http://www.Alpha4.one/dwl/";
    2. string filename = "versions.txt", myStringWebResource = null;
    3. WebClient wcl = new WebClient();
    4. Uri urluri = new Uri(url);
    5. wcl.Headers.Add("User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)");
    6. wcl.Headers.Add("Content-Type", "application / zip, application / octet - stream");
    7. wcl.Headers.Add("Accept-Encoding", "gzip,deflate,sdch");
    8. wcl.Headers.Add("Referer", "http://www.SkullBro.de");
    9. wcl.Headers.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
    10. myStringWebResource = url + filename;
    11. wcl.DownloadFileCompleted += Wcl_DownloadFileCompleted;
    12. wcl.DownloadProgressChanged += Wcl_DownloadProgressChanged;
    13. sw.Start();
    14. //wcl.DownloadFile(myStringWebResource,filename);
    15. try
    16. {
    17. wcl.DownloadFileAsync(urluri, filename);
    18. }
    19. catch (Exception f)
    20. {
    21. MessageBox.Show(f.ToString());
    22. }


    C#-Quellcode

    1. private void Wcl_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
    2. {
    3. if (e.Error != null)
    4. {
    5. string error = e.Error.ToString();
    6. MessageBox.Show(error);
    7. return;
    8. }
    9. sw.Reset();
    10. if (e.Cancelled == true)
    11. {
    12. MessageBox.Show("Download has been canceled.");
    13. }
    14. else
    15. {
    16. MessageBox.Show("Download completed!");
    17. }
    18. }


    Im AsyncDownload kommt immer die Fehlermeldung, welche beim ersten if in "downloadcompleted" dort ausgelöst wird.
    Danke im Vorraus
    DaNeubi

    DaNeubi schrieb:

    bekomme ich eine 403 Fehlermeldung
    Was passiert, wenn Du diese Datei synchron downloadest?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    DaNeubi schrieb:

    da ich in einem Vorherigen Post eine Frage zum FTP Download hatte und mir dort gesagt wurde http(s) sei besser probiere ich mich natürlich nun auch daran.
    Sehr schön. ;)

    Also wenn ich die URL im Browser aufrufe, bekomme ich auch einen 403 Fehler. Wie versuchst Du das denn überhaupt in einer Datei zu speichern?

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Wenn du dir mal auf Wikipedia die HTTP Status Codes ansiehst und auf 403 runter scrollst, wirst du fesstellen, dass dieser Status Code sagt, dass du einen Forbidden Zugriff machst, du also entweder keine Berechtigung hast oder eine als HTTPS konfigurierte URL nur mit HTTP aufgerufen wurde.

    Evtl hilft dir das weiter

    Lg Radinator

    Edit: Poste doch bitte mal den StackTrace
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell