Можно ли использовать System.Net.WebClient в консольном приложении для потоковой передачи того, что мой HttpHandler может делать с Httpcontext.Response.OutputStream.Write? - PullRequest
0 голосов
/ 10 ноября 2011

Я пытаюсь сделать что-то в консольном приложении для теста (на основе некоторого кода в HttpHandler в веб-приложении).

Учитывая что-то вроде это ниже , которое работает для моего HttpHandler, которому передан HttpContext:

context.Response.AppendHeader("Content-Length", docContent.Length.ToString());
context.Response.AppendHeader("content-disposition", "attachment; filename=\"" + fileName + "\"");
context.Response.ContentType = MIMEType.MimeType(fileType);
context.Response.OutputStream.Write(docContent, 0, docContent.Length);
context.Response.OutputStream.Flush();

У меня есть часть, я думаю, и затем я получаюзастрял:

WebClient client = new WebClient ();

client.Headers.Add("Content-Length", docContent.Length.ToString());
client.Headers.Add("content-disposition", "attachment; filename=\"" + fileName + "\"");
string ContentType = MIMEType.MimeType(fileType);
// ??
// how to build the response as an output stream from my byte array which has the data ? 

1 Ответ

1 голос
/ 26 ноября 2011

MemoryStream (byte []) может создать Stream из byte[].

Но проблема в том, что WebClient предназначен для выдачи только HTTP запросов .Если ваша цель - протестировать сервер, загрузив вложение, вам понадобятся другие заголовки.

Если вы действительно пытаетесь загрузить файл, попробуйте использовать WebClient.DownloadFile

...