如何使用asp.net中HttpWebRequest的响应重定向到带有标头的另一个URL?

时间:2018-10-30 13:19:59

标签: c# asp.net httpwebrequest response.redirect

我正在使用asp.net Web窗体应用程序在IE模态对话框中调用aspx页面,该页面在页面加载时调用带有标题的HttpWebRequest和带有JSON数据的POST,如下所示:

   decimal result = Convert.ToDecimal(readerCASH["Cash"]);

对该URL的调用是一个Azure网站,应将其重定向到另一个页面,例如:

http://URL/Home/index/ID

我在httpWebResponse.ResponseURI属性中收到此URI响应,但它没有任何作用。理想情况下,此Azure网站会自动重定向到响应URI中接收到的URI,但不适用于我。我的响应状态为“确定”,但之后显示空白页。

对ResponseURI的调用应该是一个GET请求,该请求具有与上面POST请求中所示的具有Accept和ContentType相同的自定义标头。 Response.Redirect不适用于标头。我将重定向到Azure网站上的“错误”页面,而没有带有Response.Redirect的第二个请求的标题。

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL + "?ID=" +ID);

NameValueCollection nameValueCollection = new NameValueCollection
{
    { "firstName", firstName },
    { "lastName", lastName },
    { "userName", userName },
    { "ApiKey", ApiKey },
    { "ApiSecret", ApiSecret },
    { "x-requestKey", Gluid },
};
request.Headers.Add(nameValueCollection);
request.Accept = "application/json";
request.ContentType = "application/json";
request.Method = "POST";
request.AllowAutoRedirect = true;
byte[] bytes = Encoding.ASCII.GetBytes(dataSent);

request.ContentLength = bytes.Length;
Stream os = request.GetRequestStream();
os.Write(bytes, 0, bytes.Length); //Push it out there
os.Close();
HttpWebResponse httpWebResponse = (HttpWebResponse)request.GetResponse();

任何指针都会有所帮助!

0 个答案:

没有答案