HTTP Basic Authentication认证(WinForm 小测试)

HTTP Basic Authentication认证
后台填写用户名和密码模拟登录

       private void Form1_Load(object sender, EventArgs e)
        {

            string ReadJson = "";
            StreamReader reader = null;
            WebResponse wr = null;

            try
            {
                string username = "lisa";
                string password = "123";

                WriteLog("step_DOA_CTC +" + "_" + username + "_lisa" + password + "+", "NewPRPOlisa0");

                string url = "https://xxx.xx.xx.xx/xx/xx/xx?x=43264";
                //如果总是报错401,将你的url的http改为https 试下
                HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
                request.Method = "GET";
                request.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(Encoding.UTF8.GetBytes(username + ":" + password)));
                wr = request.GetResponse();
                Stream receiveStream = wr.GetResponseStream();
                reader = new StreamReader(receiveStream, Encoding.UTF8);

            }
            catch (Exception ex)
            {
                WriteLog("step+" + "_" + ex.Message, "NewPRPOlisaSaleEX");
                 WriteLog("" + ex.StackTrace, "NewPRPOlisaSaleEX1"); 
            }
             
            ReadJson = reader.ReadToEnd();
            WriteLog("step_DOA_CTC +" + "_" + ReadJson, "NewPRPOlisaSale");
            if (wr != null)
            {
                wr.Close();
            }

        }

           

         public void WriteLog(string logStr, string logname)
        {
            try
            {
                string sFilePath = "D:\\lisa"; 
                string sFileName = logname + ".txt";
                sFileName = sFilePath + @"\\" + sFileName; // '文件的绝对路径


                if (!Directory.Exists(sFilePath))
                {   // 不存在则创建
                    Directory.CreateDirectory(sFilePath);
                }
                System.IO.File.AppendAllText(sFileName, System.DateTime.Now + ":" + logStr + System.Environment.NewLine, Encoding.Default);
            }
            catch (Exception ex)
            {

            }
        }

其他 HTTP请求

 /// <summary>
        /// 请求网络资源,返回响应的文本
        /// </summary>
        /// <param name="url">网络资源地址</param>
        public static string HttpWebRequest(string url)
        {
            return HttpWebRequest(url, string.Empty, Encoding.GetEncoding("utf-8"));
        }

        /// <summary>
        /// 请求网络资源,返回响应的文本
        /// </summary>
        /// <param name="url">网络资源Url地址</param>
        /// <param name="parameters">提交的参数,格式:参数1=参数值1&amp;参数2=参数值2</param>
        public static string HttpWebRequest(string url, string parameters)
        {
            return HttpWebRequest(url, parameters, Encoding.GetEncoding("utf-8"), true);
        }

        /// <summary>
        /// 请求网络资源,返回响应的文本
        /// </summary>
        /// <param name="url">网络资源地址</param>
        /// <param name="parameters">提交的参数,格式:参数1=参数值1&amp;参数2=参数值2</param>
        /// <param name="encoding">字符编码</param>
        /// <param name="isPost">是否Post提交</param>
        /// <param name="contentType">内容类型</param>
        /// <param name="cookie">Cookie容器</param>
        /// <param name="timeout">超时时间</param>
        public static string HttpWebRequest(string url, string parameters, Encoding encoding, bool isPost = false,
             string contentType = "application/x-www-form-urlencoded", CookieContainer cookie = null, int timeout = 120000)
        {
            var request = (HttpWebRequest)WebRequest.Create(url);
            request.Timeout = timeout;
            request.CookieContainer = cookie;
            if (isPost)
            {
                byte[] postData = encoding.GetBytes(parameters);
                request.Method = "POST";
                request.ContentType = contentType;
                request.ContentLength = postData.Length;
                using (Stream stream = request.GetRequestStream())
                {
                    stream.Write(postData, 0, postData.Length);
                }
            }
            var response = (HttpWebResponse)request.GetResponse();
            string result;
            using (Stream stream = response.GetResponseStream())
            {
                if (stream == null)
                    return string.Empty;
                using (var reader = new StreamReader(stream, encoding))
                {
                    result = reader.ReadToEnd();
                }
            }
            return result;
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章