C#請求http向網頁發送數據,網頁接收


首先,我們需要的是什么東西?

用POST方式請求http,給網頁傳輸數據,網頁接收到數據之后,把數據存儲到數據庫中。

1.首先請求http,建立連接,把轉碼過的數據傳輸過去

2.網頁接收數據,在轉碼之后存儲到數據庫

3.網頁返回一個東西給傳輸方,表示我們已經接收到數據了

 

同樣,我們請求http也是用的控制台模擬的

static void Main(string[] args)
{
    string result = Post("http://localhost:5534/Home/ToUrl", "家庭");
    Console.WriteLine(result);
    Console.ReadKey();
}
/// <summary>  
        /// 指定Post地址使用Get 方式獲取全部字符串  
        /// </summary>  
        /// <param name="url">請求后台地址</param>  
        /// <param name="content">Post提交數據內容(utf-8編碼的)</param>  
        /// <returns>結果</returns>  
        public static string Post(string url, string content)
        {
            //申明一個容器result接收數據
            string result = "";
            //首先創建一個HttpWebRequest,申明傳輸方式POST
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
            req.Method = "POST";
            req.ContentType = "application/x-www-form-urlencoded";

            //添加POST參數
            byte[] data = Encoding.UTF8.GetBytes(content);
            req.ContentLength = data.Length;
            using (Stream reqStream = req.GetRequestStream())
            {
                reqStream.Write(data, 0, data.Length);
                reqStream.Close();
            }

            //申明一個容器resp接收返回數據
            HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
            Stream stream = resp.GetResponseStream();
            //獲取響應內容  
            using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
            {
                result = reader.ReadToEnd();
            }
            return result;
        }
傳輸方

然后,在Controller里面有個ToUrl用於接收數據

public ActionResult ToUrl()
        {
            string result = "";
            string jsonStr = "", line;
            try
            {

                Stream streamResponse = Request.InputStream;
                StreamReader streamRead = new StreamReader(streamResponse, Encoding.UTF8);

                while ((line = streamRead.ReadLine()) != null)
                {
                    jsonStr += line;
                }
                streamResponse.Close();
                streamRead.Close();

                result = jsonStr;
            }
            catch (Exception ex)
            {
                result = "msg-數據發布(In)異常:" + ex.Message;
            }
            Service service = new Service();
            //調用AddCatagorys方法,把數據添加進去
            service.AddCatagorys(result);
            //再調用GetCatas方法,獲取到分類列表
            List<Catagory> list = service.GetCatagories();
            //找到分類列表最后一個分類,也就是剛剛添加的分類
            Catagory catagory = list[list.Count - 1];
            //返回Json
            //return Json(catagory)

            //返回一個ID,Content()里面是string類型,所以要把int轉為string類型
            return Content(catagory.ID.ToString());
        }
接收方

 

這里其實相當於兩個人打電話,你在跟我打電話的時候,按理來說不會再跟其他人打電話唄。

所以這里return Content(catagory.ID.ToString());表示將返回的ID再返還給控制台,也就是傳輸方,讓傳輸方知道我們接收到你傳輸過來的數據,並且把它保存到數據庫里面了。

 

 

注:此篇隨筆只供參考使用,而且也有很多小瑕疵,最主要的不是代碼,邏輯才是最重要的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM