binarywrite()方法如何工作?

时间:2014-07-07 02:52:29

标签: c# asp.net http generic-handler

我有来自.ashx文件的以下代码行。

 public void ProcessRequest (HttpContext context)
  {
    string hstr = @"Data Source=SUMAN-PC\SQLEXPRESS;Initial Catalog=school;Integrated  Security=True";
    SqlConnection con = new SqlConnection(hstr);
    string ms = context.Request.QueryString["id_image"].ToString();
    con.Open();
    SqlCommand cmd = new SqlCommand("select img from class where classid=" + ms, con);
    SqlDataReader dr = cmd.ExecuteReader();
    dr.Read();
    context.Response.BinaryWrite((Byte[])dr[0]);
    context.Response.End();
}

经过一番研究后我发现了这个

  

“BinaryWrite方法将特定数据发送到当前HTTP输出   没有任何角色转换。“

这是什么意思?它如何将数据发送到http输出? HTTP输出在哪里?

1 个答案:

答案 0 :(得分:2)

在这种情况下,context.Response是一个流,表示发送给发出http请求的客户端(很可能是Web浏览器)的数据。 ASP"引擎"会自动为您提供Context.Response。在幕后。您写入该流的任何内容最终都会发送到浏览器。

通用http处理程序自动为您提供名为Context的HttpContext实例。 HttpContext包含两个名为Request和Response的属性,允许您访问通用处理程序所服务的请求以及相应的响应。处理程序应该执行它需要执行的任何处理,并通过将结果写回Response流来发送结果。