Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.Net如何响应发送到通用处理程序的请求_C#_Asp.net - Fatal编程技术网

C# ASP.Net如何响应发送到通用处理程序的请求

C# ASP.Net如何响应发送到通用处理程序的请求,c#,asp.net,C#,Asp.net,假设我已经告诉第三方向我的基于{http://myIp/Myhandler.ashx}. 我如何回应他们发出的请求?我有一个函数processrequest,它允许我访问上下文对象,但如何使用它来确保我的响应返回到请求发起的同一个位置,从而作为对其请求的响应。我试图构造一个HTTPResponse对象并将其发送到他们的服务器,但没有成功。我试图回复他们一个确定的消息,并给他们一个网址重定向到用户 public void ProcessRequest(HttpContext context)

假设我已经告诉第三方向我的基于{http://myIp/Myhandler.ashx}. 我如何回应他们发出的请求?我有一个函数processrequest,它允许我访问上下文对象,但如何使用它来确保我的响应返回到请求发起的同一个位置,从而作为对其请求的响应。我试图构造一个HTTPResponse对象并将其发送到他们的服务器,但没有成功。我试图回复他们一个确定的消息,并给他们一个网址重定向到用户

 public void ProcessRequest(HttpContext context)
        {

            string status = context.Request.Params["Status"];
            string statusDetail = context.Request.Params["StatusDetail"];

            switch (status.ToUpper())
            {
                case "OK":
                    {
                        StringBuilder content = new StringBuilder();

                        content.Append("Status=" + HttpUtility.UrlEncode("OK"));
                        content.Append("&RedirectURL=" + HttpUtility.UrlEncode("http://http://myip:myport/Error.aspx?Error=SUCCESS"));
                        content.Append("&StatusDetail=" + HttpUtility.UrlEncode("OK"));


                        HttpWebResponse response = SendPOSTRequest("http://theirip.page", content.ToString(), "", "", true);
}
}

您可以使用
context.Response
写入响应流。(您可以使用use
Write
,而不是将所有内容都放在字符串生成器中并写入;它将自动适当地对其进行缓冲。)ASP、IIS和HTTP将确保对响应流的写入指向实际发送请求的内容

HttpWebResponse response = Context.Response
或者直接写下来

Context.Response = SendPOSTRequest ....

使用
上下文
参数设置要发送的响应。因为您的响应是一个字符串,所以您可以使用
Write

context.Response.Write(content.ToString());
您还需要设置一些响应头:

context.Response.ContentType = "text/plain";
context.Response.ContentEncoding = System.Text.Encoding.Default;

我应该补充一点,我不打算重定向到错误页面。这只是一个测试页面。喜欢人们在没有解释的情况下否决投票。非常有用的
HttpContext
没有
Write
方法;您需要
写入
响应
对象。这里有一个输入错误。它应该是context.Response.Write(content.ToString())。我现在就试试。