C# 为测试创建自定义http头-

C# 为测试创建自定义http头-,c#,http-headers,request,response,C#,Http Headers,Request,Response,我正在用c#编写授权管理模块。凭据将从http头中提取。 我的问题是: 我只有http头的定义(txt文件)。因此,我需要在测试代码中准备标头(在default.aspx中向标头添加键和值): 当我阅读page2.aspx pageload中的标题时 Request.Headers["contractualData"]; 我看不到新添加的键和值。(我可以用IEWatch在响应标题中看到它,但我用request.headers无法读取它。我也用response.AddHeader或respons

我正在用c#编写授权管理模块。凭据将从http头中提取。 我的问题是: 我只有http头的定义(txt文件)。因此,我需要在测试代码中准备标头(在default.aspx中向标头添加键和值):

当我阅读page2.aspx pageload中的标题时

Request.Headers["contractualData"];
我看不到新添加的键和值。(我可以用IEWatch在响应标题中看到它,但我用request.headers无法读取它。我也用response.AddHeader或response.headers.Add.尝试了相同的行为!)我该怎么办


一般来说,我如何准备一个自定义头并使用该头测试代码?

除非我在发送页面中反向-请求用于发送头。在接收页面中,应该使用请求来读取它们。

除非我将内容向后移动-在发送页面中,请求用于发送标题。在接收页面中,应该使用请求来读取它们。

我找到了一个解决方案。创建请求标头并将其过帐。以下代码起作用:

protected void Page_Load(object sender, EventArgs e)

        {


            string path = Request.Url.Scheme + "://" + Request.Url.Host + ":" + Request.Url.Port + "/";

            myRedirect(path + "TestRedirectTo.aspx", "test", "testValue");

        }

        protected void myRedirect(string url, string headerName, string headerValue)

        {

            Response.Clear();

            System.Net.WebRequest request = System.Net.WebRequest.Create(url);

            request.Headers.Add(headerName, headerValue);

            System.Net.WebResponse response = request.GetResponse();

            System.IO.StreamReader sr = new System.IO.StreamReader(response.GetResponseStream(), System.Text.Encoding.Default);


            string content = sr.ReadToEnd();

            sr.Close();

            Response.Write(content);

            sr.Close();

            Response.End();

        }

我找到了解决办法。创建请求标头并将其过帐。以下代码起作用:

protected void Page_Load(object sender, EventArgs e)

        {


            string path = Request.Url.Scheme + "://" + Request.Url.Host + ":" + Request.Url.Port + "/";

            myRedirect(path + "TestRedirectTo.aspx", "test", "testValue");

        }

        protected void myRedirect(string url, string headerName, string headerValue)

        {

            Response.Clear();

            System.Net.WebRequest request = System.Net.WebRequest.Create(url);

            request.Headers.Add(headerName, headerValue);

            System.Net.WebResponse response = request.GetResponse();

            System.IO.StreamReader sr = new System.IO.StreamReader(response.GetResponseStream(), System.Text.Encoding.Default);


            string content = sr.ReadToEnd();

            sr.Close();

            Response.Write(content);

            sr.Close();

            Response.End();

        }

这听起来不对。你能解释一下你的意思吗?Request.Headers.Add()给出System.PlatformNotSupportedException:此平台不支持该操作。这听起来不正确。你能解释一下你的意思吗?Request.Headers.Add()给出System.PlatformNotSupportedException:此平台不支持该操作。