C# ASP.Net如何响应发送到通用处理程序的请求
假设我已经告诉第三方向我的基于{http://myIp/Myhandler.ashx}. 我如何回应他们发出的请求?我有一个函数processrequest,它允许我访问上下文对象,但如何使用它来确保我的响应返回到请求发起的同一个位置,从而作为对其请求的响应。我试图构造一个HTTPResponse对象并将其发送到他们的服务器,但没有成功。我试图回复他们一个确定的消息,并给他们一个网址重定向到用户C# ASP.Net如何响应发送到通用处理程序的请求,c#,asp.net,C#,Asp.net,假设我已经告诉第三方向我的基于{http://myIp/Myhandler.ashx}. 我如何回应他们发出的请求?我有一个函数processrequest,它允许我访问上下文对象,但如何使用它来确保我的响应返回到请求发起的同一个位置,从而作为对其请求的响应。我试图构造一个HTTPResponse对象并将其发送到他们的服务器,但没有成功。我试图回复他们一个确定的消息,并给他们一个网址重定向到用户 public void ProcessRequest(HttpContext context)
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
写入响应流。(您可以使用useWrite
,而不是将所有内容都放在字符串生成器中并写入;它将自动适当地对其进行缓冲。)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())。我现在就试试。