ASMX-Datei herunterladen
Ich habe eine ASMX(keine WCF-webservice mit der Methode, dass die Antworten eine Datei, die sieht so aus:
[WebMethod]
public void GetFile(string filename)
{
var response = Context.Response;
response.ContentType = "application/octet-stream";
response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);
using (FileStream fs = new FileStream(Path.Combine(HttpContext.Current.Server.MapPath("~/"), fileName), FileMode.Open))
{
Byte[] buffer = new Byte[256];
Int32 readed = 0;
while ((readed = fs.Read(buffer, 0, buffer.Length)) > 0)
{
response.OutputStream.Write(buffer, 0, readed);
response.Flush();
}
}
}
und ich wollen laden Sie diese Datei auf dem lokalen Dateisystem mithilfe von web-Referenz in meiner Konsole-Anwendung. Wie man den filestream?
P. S. ich habe versucht, herunterladen von Dateien via post-request(mit HttpWebRequest-Klasse), aber ich denke, es gibt viel elegantere Lösung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aktivieren Sie HTTP im web.in der config von Ihrem web-service.
Dann sollten Sie in der Lage sein, um Sie nur einen web-client, um die Datei herunterzuladen (getestet mit text-Datei):
Edit:
Unterstützen das setzen und empfangen von cookies benötigen Sie zum schreiben eines benutzerdefinierten
WebClient
Klasse, überschreibtGetWebRequest()
, es ist einfach zu tun und nur ein paar Zeilen code:Verwenden Sie diese benutzerdefinierten web-client, den Sie tun würde: