我试了用HttpWebRequest.Headers.Add("Authorization", "Basic " + base64); 这样是不行。下面打开我已经验证过没问题。传入url。填入你的网页的用户名和密码就可以直接使用
public string get(string Url) { Uri uri = new Uri(Url); //authorization授权其实就是登陆的时候需要把用户名和密码传入即可。 CredentialCache cc = new CredentialCache(); cc.Add(uri, "Basic", new NetworkCredential("guest", "guest")); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); request.Credentials = cc; request.PreAuthenticate = true; ///request配置请查看页面的开发者工具,尽量保证与request headers相同 request.Method = "GET";//或者GET //request.Referer = Referer; byte[] bytes = Encoding.UTF8.GetBytes(""); //request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8"; //request.ContentLength = bytes.Length; //request.AllowAutoRedirect = true; //request.Authorization = "Basic Z3Vlc3Q6Z3Vlc3Q="; //request.Host = "211.156.200.95:8081"; //request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"; //string authorization = "guest" + ":" + "guest"; //string base64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(authorization)); //request.Headers.Add("Authorization", "Basic " + base64); //request.CookieContainer = container;//获取验证码时候获取到的cookie会附加在这个容器里面 //Stream myResponseStream = request.GetRequestStream(); //myResponseStream.Write(bytes, 0, bytes.Length); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); //response.Cookies = container.GetCookies(request.RequestUri); StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); string retString = myStreamReader.ReadToEnd(); myStreamReader.Close(); //myResponseStream.Close(); if (response != null) { response.Close(); } if (request != null) { request.Abort(); } return retString; }
C#登陆get请求带有authorization授权的网页
最新推荐文章于 2025-03-12 17:43:08 发布