2016-07-21 32 views
0

Ich muss in der Lage sein, eine Datei von URL herunterladen. Die URL wird nicht mit einer tatsächlichen Datei verknüpft, sondern generiert zuerst die Datei auf dem Server und anschließend einen Download-Dialog. Wahrscheinlich ein mvc FileResult zurückgeben.Download von URL, die eine Datei generiert

Ich bin nur daran interessiert, das Byte [] aus der Datei zu bekommen.

Ich habe versucht:

 using (var webClient = new WebClient()) 
     { 
      System.Uri uri = new System.Uri(Document.Url); 
      bytes = await webClient.DownloadDataTaskAsync(uri); 
     } 

Dies funktioniert, aber ich erhalte eine beschädigte Datei wie erwartet.

Ich habe keine Kontrolle darüber, wie der Server die Datei generiert oder bereitstellt.

Gibt es eine Möglichkeit, auf die Fertigstellung der Datei zu warten und den Dateiinhalt abzurufen?

TIA

+0

schnelle Notiz zu sagen, Sie sollten verwenden 'HttpClient' nicht' WebClient' auch gibt es viele ähnliche Fragen hier mit guten Antworten, so werfen Sie einen Blick auf diese erste –

+0

Dank Llama. Nicht von denen, die aufgrund dessen, was der Server zurückgibt, gearbeitet haben. Ich habe es in meiner Antwort unten erklärt. Danke für die Antwort. –

Antwort

0

Macht nichts. Stellt sich heraus, der Link gibt einige Javascript zurück, das einen Benutzer automatisch authentifiziert und dann eine jquery zu einer anderen URL und einem Port zum Generieren der Datei erhält. Also habe ich im Grunde dieses Skript heruntergeladen und in pdf gespeichert. Dah.

So eine Arbeit wäre, das in irgendeiner Weise zu imitieren.