查看: 2111|回复: 0

[ASP.NET教程] C#请求http向网页发送接收数据的方法

发表于 2018-2-10 08:00:07

本文实例为大家分享了C#请求http向网页发送数据、网页接收,供大家参考,具体内容如下

首先,我们需要的是什么东西?

用POST方式请求http,给网页传输数据,网页接收到数据之后,把数据存储到数据库中。

1.首先请求http,建立连接,把转码过的数据传输过去

2.网页接收数据,在转码之后存储到数据库

3.网页返回一个东西给传输方,表示我们已经接收到数据了

同样,我们请求http也是用的控制台模拟的

  1. static void Main(string[] args)
  2. {
  3. string result = Post("http://localhost:5534/Home/ToUrl", "家庭");
  4. Console.WriteLine(result);
  5. Console.ReadKey();
  6. }
  7. /// <summary>
  8. /// 指定Post地址使用Get 方式获取全部字符串
  9. /// </summary>
  10. /// <param name="url">请求后台地址</param>
  11. /// <param name="content">Post提交数据内容(utf-8编码的)</param>
  12. /// <returns>结果</returns>
  13. public static string Post(string url, string content)
  14. {
  15. //申明一个容器result接收数据
  16. string result = "";
  17. //首先创建一个HttpWebRequest,申明传输方式POST
  18. HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
  19. req.Method = "POST";
  20. req.ContentType = "application/x-www-form-urlencoded";
  21. //添加POST参数
  22. byte[] data = Encoding.UTF8.GetBytes(content);
  23. req.ContentLength = data.Length;
  24. using (Stream reqStream = req.GetRequestStream())
  25. {
  26. reqStream.Write(data, 0, data.Length);
  27. reqStream.Close();
  28. }
  29. //申明一个容器resp接收返回数据
  30. HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
  31. Stream stream = resp.GetResponseStream();
  32. //获取响应内容
  33. using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
  34. {
  35. result = reader.ReadToEnd();
  36. }
  37. return result;
  38. }
复制代码

然后,在Controller里面有个ToUrl用于接收数据

  1. public ActionResult ToUrl()
  2. {
  3. string result = "";
  4. string jsonStr = "", line;
  5. try
  6. {
  7. Stream streamResponse = Request.InputStream;
  8. StreamReader streamRead = new StreamReader(streamResponse, Encoding.UTF8);
  9. while ((line = streamRead.ReadLine()) != null)
  10. {
  11. jsonStr += line;
  12. }
  13. streamResponse.Close();
  14. streamRead.Close();
  15. result = jsonStr;
  16. }
  17. catch (Exception ex)
  18. {
  19. result = "msg-数据发布(In)异常:" + ex.Message;
  20. }
  21. Service service = new Service();
  22. //调用AddCatagorys方法,把数据添加进去
  23. service.AddCatagorys(result);
  24. //再调用GetCatas方法,获取到分类列表
  25. List<Catagory> list = service.GetCatagories();
  26. //找到分类列表最后一个分类,也就是刚刚添加的分类
  27. Catagory catagory = list[list.Count - 1];
  28. //返回Json
  29. //return Json(catagory)
  30. //返回一个ID,Content()里面是string类型,所以要把int转为string类型
  31. return Content(catagory.ID.ToString());
  32. }
复制代码

这里其实相当于两个人打电话,你在跟我打电话的时候,按理来说不会再跟其他人打电话呗。

所以这里return Content(catagory.ID.ToString());表示将返回的ID再返还给控制台,也就是传输方,让传输方知道我们接收到你传输过来的数据,并且把它保存到数据库里面了。

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

您可能感兴趣的文章:

  • c# 抓取Web网页数据分析
  • asp.net(c#)做一个网页数据采集工具
  • c# HttpWebRequest通过代理服务器抓取网页内容应用介绍
  • C#抓取网页数据 解析标题描述图片等信息 去除html标签


回复

使用道具 举报