-1

假设我已经告诉第 3 方向基于 {http://myIp/Myhandler.ashx} 的通用处理程序发送请求。我该如何回应他们发送的请求?我有函数 process request 让我可以访问上下文对象,但是如何使用它来确保我的响应返回到请求发起的同一位置,从而充当对他们请求的回复。我尝试构建一个 HTTPResponse 对象并将其发送到他们的服务器,但这不起作用。我正在尝试用 OK 消息回复他们,并给他们一个网址以将用户重定向到。

 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);
}
}
4

3 回答 3

6

您用于context.Response写入响应流。(您可以随用随用Write,而不是将所有内容都放在字符串构建器中并写入;它会自动适当地缓冲它。)ASP、IIS 和 HTTP 将确保写入响应流是针对实际发送请求的任何内容。

于 2012-11-08T16:54:48.117 回答
1

使用context参数设置要发送的响应。由于您的响应是一个字符串,您可以使用Write

context.Response.Write(content.ToString());

您还需要设置一些响应标头:

context.Response.ContentType = "text/plain";
context.Response.ContentEncoding = System.Text.Encoding.Default;
于 2012-11-08T16:55:40.193 回答
0
HttpWebResponse response = Context.Response

或直接写给它

Context.Response = SendPOSTRequest ....
于 2012-11-08T16:55:33.760 回答