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;
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章