asp.net泛型处理程序调用另一个处理程

时间:2015-05-29 19:24:48

标签: c# asp.net

是否可以从处理程序中调用另一个处理程序?我有一个自定义处理程序,只要请求文件类型就会触发,然后我会通过一些身份验证过程并需要调用另一个处理程序。

我的问题是我不知道如何从这个处理程序中调用另一个处理程序。

非常感谢

2 个答案:

答案 0 :(得分:3)

Http处理程序只是一个类。您可以像任何其他类一样实例化它并调用其ProcessRequest方法。

但是,更好的设计是避免处理程序到处理程序调用,而是将公共代码移动到实用程序类中,并从两个处理程序中调用它。

我在这里假设您希望处理程序调用共享HttpContext和请求/响应流。如果你想让第一个处理程序调用第二个处理程序,读取它的响应,并返回它自己的响应,你可能会想要使用Glenn的答案。

答案 1 :(得分:0)

以下是调用other handler

的一种方法
public class Handler1 : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/plain";

        var otherurl = "https://localhost:81/otherhandler.ashx";
        // using System.Net;
        var req = (HttpWebRequest)HttpWebRequest.Create(otherurl);
        var sr = new StreamReader(req.GetResponse().GetResponseStream());
        // read stuff: sr.ReadBlock(), sr.ReadToEnd(), ...
        // do something with the response

        context.Response.Write("Hello World");

    }
}