HTTP请求和响应C#

时间:2013-12-26 09:13:40

标签: c# http

我正在使用C#中的服务器端项目,该项目接收来自各个终端的请求以下载特定文件。为此,在服务器端,我正在创建一个Web应用程序来处理来自客户端的HTTP请求。如何发送文件(以字节为单位)作为响应?

namespace WebApplication1
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //get parameters
            string str = Request.QueryString["param1"];

            //process parameters received

            //send FILE in response
            Response.Clear();
            Response.WriteFile(@"C:\Users\Xyz\Desktop\xyz.xml");
        }
    }
}

上面的代码会发送带文件的默认响应对象,但我只想发送没有任何默认响应的FILE。

1 个答案:

答案 0 :(得分:3)

你最好为这份工作写generic ASHX handler。这比整个WebForm更轻量级(实际上它是一个通用的处理程序,但为此目的不需要大量额外的垃圾)

public class DownloadFileHandler : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        //get parameters
        string str = context.Request.QueryString["param1"];

        //process parameters received

        // set content type
        context.Response.ContentType = "text/xml";

        //send FILE in response
        context.Response.WriteFile(@"C:\Users\Xyz\Desktop\xyz.xml");
    }

    public bool IsReusable
    {
        get { return true; }
    }
}

然后您可以使用来自客户端的http://example.com/downloadfile.ashx?param1=value1