Willkommen bei Entwickler-Forum.
Ergebnis 1 bis 5 von 5
  1. #1
    Zaungast
    Registriert seit
    14.11.2008
    Beiträge
    27

    Standard Datei herunterladen

    Ich habe ein Problem in C#.Net, mit dem ich im Moment nicht zurechtkomme.
    Ich rufe per URI eine Funktion im Web auf. Diese Funktion liefert als Ergebnis eine Datei, die ich gerne als txt Dokument speichern wuerde.

    Nun habe ich versucht mit WebClient die Datei zu bekommen. Er speichert allerdings nur den Quellcode der Seite.

    Ein weiteres Problem ist, dass ich mich zuerst anmelden muss, welches bei einer anderen URI per GET funktioniert. Erst dann kann ich die Funktion aufrufen und bekomme die Datei.
    Im Browser funktioniert das ohne Probleme. Die datei wird automatisch geladen.

    Kann mir jemand weiterhelfen?
    Danke schonmal


    *edit: Sorry, dass ich nicht ins entsprechende Unterforum geschrieben habe. Gerade erst bemerkt.

  2. #2
    Stammgast
    Registriert seit
    11.12.2007
    Ort
    Waidring / Tirol
    Beiträge
    3.763

    Standard

    Hallo,

    Funktion im Web
    rufst du einen Webservice auf? Oder wie kann/darf ich das verstehen?

    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

  3. #3
    Zaungast
    Registriert seit
    14.11.2008
    Beiträge
    27

    Standard

    Hmm...
    Ich weiss jetzt nicht genau wie ich es erklaeren soll.
    Ich will eben eine URI aufrufen, die sofort eine Datei herunterlaedt. Zumindest, wenn dies im Browser geschieht. An diese Datei will ich kommen.

    Jedoch muss ich mich vorher auf einer anderen URI anmelden, damit ich nicht geblockt werde.

    Wie kann ich dies nun im Code anstellen, da der Browser ja anscheinend das Cookie von der Anmeldung speichert.

  4. #4
    Stammgast
    Registriert seit
    11.12.2007
    Ort
    Waidring / Tirol
    Beiträge
    3.763

    Standard

    Ok.

    Code C:
    WebClient client = new WebClient();
    client.Credentials = new NetworkCredential(userName, password);
    client.DownloadFile(uri, "Test.pdf");

    Den Zieldateinamen musst du selbst ermitteln.
    Die Anmeldeinfos werden mit übergeben - ähnlich wie es mit den Cookis passiert.

    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

  5. #5
    Zaungast
    Registriert seit
    14.11.2008
    Beiträge
    27

    Standard

    Hi, erstmal danke fuer die Antwort.
    HAt aber irgendwie nicht funktioniert.
    Habe jedoch nun eine andere Loesung gefunden, die mir das Ganze mit Cookies ermoeglicht.


    Code C:
    Uri uri = new Uri("http://bla.bla.de/xxx/graphContr.action?method=init");
                CookieContainer cookieContainer = new CookieContainer();
                string html;
     
                HttpWebRequest sessionRequest = (HttpWebRequest)WebRequest.Create("http://bla.bla.de/xxx/signonAction.action?login=name&password=pw&forwardAction=/graphContr.action?method=init");
                sessionRequest.CookieContainer = new CookieContainer();
                CookieContainer cookies = sessionRequest.CookieContainer;
                HttpWebResponse sessionResponse = (HttpWebResponse)sessionRequest.GetResponse();
                sessionResponse.Close();
                HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(uri);
                req.CookieContainer = cookies;
                HttpWebResponse res = (HttpWebResponse)req.GetResponse();
                StreamReader sr = new StreamReader(res.GetResponseStream());
                html = sr.ReadToEnd();

 

 

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •