可以在控制台应用程序中使用System.Net.WebClient来传输我的HttpHandler可以使用Httpcontext.Response.OutputStream.Write执行的操作吗?

时间:2011-11-10 05:38:18

标签: console-application webclient httpresponse

我正在尝试在控制台应用程序中进行测试(基于Web应用程序中HttpHandler中的一些代码)。

鉴于以下之类的东西适用于传递给它的HttpContext的HttpHandler:

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 个答案:

答案 0 :(得分:1)

MemoryStream(byte[])可以从Stream创建byte[]

但问题是WebClient仅用于发出HTTP 请求。如果您的目标是通过下载附件来测试服务器,那么您将需要不同的标头。

如果您确实要下载文件,请尝试使用WebClient.DownloadFile