首页 > 解决方案 > C# Httpwebrequest 手动重定向

问题描述

有时在向链接发送请求时,它会自动将我重定向到不需要的页面,因此为了防止这种情况,我尝试创建一个 if 语句进行重定向,但是我正在努力解决多个问题。

代码示例:

发送请求 -

string requestUriString = "https://example.com/page1";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUriString);

得到回应 -

        using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
        {
            using (Stream stream2 = response.GetResponseStream())
            {
                using (StreamReader reader = new StreamReader(stream2, Encoding.UTF8))
                {
                    str6 = reader.ReadToEnd();
                }
            }
            return str6;
        }

功能

 return str6;

将页面内容返回给要处理的原始应用程序。

但是我想为页面重定向实现一个 if 语句,我尝试做的是-

        using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
        {
            using (Stream stream2 = response.GetResponseStream())
            {
                if ((int)response.StatusCode >= 300 && (int)response.StatusCode <= 399)
                {   
                    string newurl = "https://www.example.com/page2";

                    request = request = (HttpWebRequest)WebRequest.Create(newurl);

                }
                using (StreamReader reader = new StreamReader(stream2, Encoding.UTF8))
                {
                    str6 = reader.ReadToEnd();
                }
            }
            return str6;
        }

但这似乎不起作用,因为之后

if ((int)response.StatusCode >= 300 && (int)response.StatusCode <= 399)

我需要它继续初始过程,即

            using (StreamReader reader = new StreamReader(stream2, Encoding.UTF8))
            {
                str6 = reader.ReadToEnd();
            }

标签: c#httpwebrequesthttpwebresponse

解决方案


推荐阅读