【C#】Http發送Get&Post請求

代碼以下:html

1.控制檯測試端代碼app

    class Program
    {
        static void Main(string[] args)
        {
            #region Get請求測試
            //string url = "http://localhost:42023/LoginHandler.aspx";
            //string data = "UserName=admin&Password=123";
            //string result = HttpGet(url, data);
            //Console.WriteLine(result); 
            #endregion

            #region Post請求測試
            string url = "http://localhost:42023/LoginHandler.aspx";
            string data = "UserName=admin&Password=123";
            string result = HttpPost(url, data);
            Console.WriteLine(result); 
            #endregion
            Console.ReadLine();  
        }
        /// <summary>
        /// Http發送Get請求方法
        /// </summary>
        /// <param name="Url"></param>
        /// <param name="postDataStr"></param>
        /// <returns></returns>
        public static string HttpGet(string Url, string postDataStr)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url + (postDataStr == "" ? "" : "?") + postDataStr);
            request.Method = "GET";
            request.ContentType = "text/html;charset=UTF-8";

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream myResponseStream = response.GetResponseStream();
            StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);
            string retString = myStreamReader.ReadToEnd();
            myStreamReader.Close();
            myResponseStream.Close();

            return retString;
        }
        /// <summary>
        /// Http發送Post請求方法
        /// </summary>
        /// <param name="Url"></param>
        /// <param name="postDataStr"></param>
        /// <returns></returns>
        public static string HttpPost(string Url, string postDataStr)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = postDataStr.Length;
            StreamWriter writer = new StreamWriter(request.GetRequestStream(), Encoding.ASCII);
            writer.Write(postDataStr);
            writer.Flush();
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            string encoding = response.ContentEncoding;
            if (encoding == null || encoding.Length < 1)
            {
                encoding = "UTF-8"; //默認編碼  
            }
            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(encoding));
            string retString = reader.ReadToEnd();
            return retString;
        }  
    }

2.aspx頁面代碼(LoginHandler.aspx)post

        protected void Page_Load(object sender, EventArgs e)
        {
            #region Get請求
            //string result = "";
            //string userName = Request.QueryString["UserName"];
            //string password = Request.QueryString["Password"];

            //if (userName == "admin" && password == "123")
            //{
            //    result = "登錄成功";
            //}
            //else
            //{
            //    result = "登錄失敗";
            //}
            //Response.Write(result);
            #endregion

            #region Post請求
            string result = "";
            string userName = Request.Form["UserName"];
            string password = Request.Form["Password"];

            if (userName == "admin" && password == "123")
            {
                result = "登錄成功";
            }
            else
            {
                result = "登錄失敗";
            }
            Response.Write(result);
            #endregion
        }

3. 附加:測試

**獲取Http圖片網址的圖片編碼

代碼以下:url

        private void button1_Click(object sender, EventArgs e)
        {
            HttpWebResponse resp;
            HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://images2015.cnblogs.com/blog/1086526/201701/1086526-20170113145445213-1527663261.png");
            //設置req.GetResponse()和req.GetRequestStream()的超時值
            req.Timeout = 150000;
            resp = (HttpWebResponse)req.GetResponse();
            System.Drawing.Image img;
            img = new System.Drawing.Bitmap(resp.GetResponseStream());

            
            pictureBox1.BackgroundImage = img;
        }

        /// <summary>
        /// 從Http上圖片地址獲取圖片
        /// </summary>
        /// <param name="imgUrl"></param>
        /// <returns></returns>
        public Image GetHttpImg(string imgUrl)
        {
            Image result;
            HttpWebRequest req=(HttpWebRequest)HttpWebRequest.Create(imgUrl);
            HttpWebResponse resp =(HttpWebResponse) req.GetResponse();
            result = new Bitmap(resp.GetResponseStream());
            return result;
        }     

  結果以下:code

相關文章
相關標籤/搜索