zoukankan      html  css  js  c++  java
  • 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再返还给控制台,也就是传输方,让传输方知道我们接收到你传输过来的数据,并且把它保存到数据库里面了。

    注:此篇随笔只供参考使用,而且也有很多小瑕疵,最主要的不是代码,逻辑才是最重要的。

  • 相关阅读:
    koa2 + webpack 热更新
    koa2在node6中如何运行
    浅拷贝和深拷贝的理解和实现
    angular2多组件通信流程图
    angular2 表单的理解
    ssh-add Could not open a connection to your authentication agent.
    outlook同步异常
    ctrl+c ctrl+d ctrl+z 的区别和使用场景
    grep 详解
    mysql 事务隔离级别 详解
  • 原文地址:https://www.cnblogs.com/Joker37/p/7248976.html
Copyright © 2011-2022 走看看