C#请求http向网页发送接收数据的方法

本文实例为大家分享了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再返还给控制台,也就是传输方,让传输方知道我们接收到你传输过来的数据,并且把它保存到数据库里面了。

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

时间: 2017-07-25

c# HttpWebRequest通过代理服务器抓取网页内容应用介绍

内网用户或代理上网的用户使用 复制代码 代码如下: using System.IO; using System.Net; public string get_html() { string urlStr = "http://www.domain.com"; //設定要獲取的地址 HttpWebRequest hwr = (HttpWebRequest)HttpWebRequest.Create(urlStr); //建立HttpWebRequest對象 hwr.Timeout = 60

C#抓取网页数据 解析标题描述图片等信息 去除HTML标签

一.首先将网页内容整个抓取下来,数据放在byte[]中(网络上传输时形式是byte),进一步转化为String,以便于对其操作,实例如下: 复制代码 代码如下: private static string GetPageData(string url) {     if (url == null || url.Trim() == "")         return null;     WebClient wc = new WebClient();     wc.Credentials

asp.net(c#)做一个网页数据采集工具

通过这个软件一两天就完成了几千产品数据的录入,可见很多工作不是一味用人工去做,作为一个程序员,就是要让很多让那些经常做重复性的.繁琐的工作中的人解放出来.下面只是写了一些核心代码,而且采集必须要和对应网站相挂钩,作者:郑少群 复制代码 代码如下: //提取产品列表页中产品最终页的网页 private void button1_Click(object sender, EventArgs e) { if (textBox1.Text.Trim() == "" || textBox2.Te

c# 抓取Web网页数据分析

为了完成以上的需求,我们就需要模拟浏览器浏览网页,得到页面的数据在进行分析,最后把分析的结构,即整理好的数据写入数据库.那么我们的思路就是: 1.发送HttpRequest请求. 2.接收HttpResponse返回的结果.得到特定页面的html源文件. 3.取出包含数据的那一部分源码. 4.根据html源码生成HtmlDocument,循环取出数据. 5.写入数据库. 程序如下: 复制代码 代码如下: //根据Url地址得到网页的html源码 private string GetWebCont

分享PHP源码批量抓取远程网页图片并保存到本地的实现方法

做为一个仿站工作者,当遇到网站有版权时甚至加密的时候,WEBZIP也熄火,怎么扣取网页上的图片和背景图片呢.有时候,可能会想到用火狐,这款浏览器好像一个强大的BUG,文章有版权,屏蔽右键,火狐丝毫也不会被影响. 但是作为一个热爱php的开发者来说,更多的是喜欢自己动手.所以,我就写出了下面的一个源码,php远程抓取图片小程序.可以读取css文件并抓取css代码中的背景图片,下面这段代码也是针对抓取css中图片而编写的. <?php header("Content-Type: text/ht

python3抓取中文网页的方法

本文实例讲述了python3抓取中文网页的方法.分享给大家供大家参考.具体如下: #! /usr/bin/python3.2 import sys import urllib.request req = urllib.request.Request('http://www.baidu.com') response = urllib.request.urlopen(req) the_page = response.read() type = sys.getfilesystemencoding()

Winform实现抓取web页面内容的方法

本文以一个非常简单的实例讲述了Winform实现抓取web页面内容的方法,代码简洁易懂,非常实用!分享给大家供大家参考. 具体实现代码如下: WebRequest request = WebRequest.Create("http://1.bjapp.sinaapp.com/play.php?a=" + PageUrl); WebResponse response = request.GetResponse(); Stream resStream = response.GetRespo

Python实现抓取HTML网页并以PDF文件形式保存的方法

本文实例讲述了Python实现抓取HTML网页并以PDF文件形式保存的方法.分享给大家供大家参考,具体如下: 一.前言 今天介绍将HTML网页抓取下来,然后以PDF保存,废话不多说直接进入教程. 今天的例子以廖雪峰老师的Python教程网站为例:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000 二.准备工作 1. PyPDF2的安装使用(用来合并PDF): PyPDF2版本:1.2

Python爬虫抓取指定网页图片代码实例

想要爬取指定网页中的图片主要需要以下三个步骤: (1)指定网站链接,抓取该网站的源代码(如果使用google浏览器就是按下鼠标右键 -> Inspect-> Elements 中的 html 内容) (2)根据你要抓取的内容设置正则表达式以匹配要抓取的内容 (3)设置循环列表,重复抓取和保存内容 以下介绍了两种方法实现抓取指定网页中图片 (1)方法一:使用正则表达式过滤抓到的 html 内容字符串 # 第一个简单的爬取图片的程序 import urllib.request # python自带

Node.js抓取中文网页乱码问题和解决方法

Node.js 抓取非 utf-8 的中文网页时会出现乱码问题,比如网易的首页编码是 gb2312,抓取时会出现乱码 复制代码 代码如下: var request = require('request')  var url = 'http://www.163.com' request(url, function (err, res, body) {      console.log(body) }) 可以使用 iconv-lite来解决 安装 复制代码 代码如下: npm install ico

php file_get_contents抓取Gzip网页乱码的三种解决方法

把抓取到的内容转下编码即可($content=iconv("GBK", "UTF-8//IGNORE", $content);),我们这里讨论的是如何抓取开了Gzip的页面.怎么判断呢?获取的头部当中有Content-Encoding: gzip说明内容是GZIP压缩的.用FireBug看一下就知道页面开了gzip没有.下面是用firebug查看我的博客的头信息,Gzip是开了的. 复制代码 代码如下: 请求头信息原始头信息Accept text/html,appl

java在网页上面抓取邮件地址的方法

本文实例讲述了java在网页上面抓取邮件地址的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: import java.io.BufferedReader;  import java.io.InputStreamReader;  import java.net.URL;  import java.util.regex.Matcher;  import java.util.regex.Pattern;    public class h1  {     public stati

python抓取网页中图片并保存到本地

在上篇文章给大家分享PHP源码批量抓取远程网页图片并保存到本地的实现方法,感兴趣的朋友可以点击了解详情. #-*-coding:utf-8-*- import os import uuid import urllib2 import cookielib '''获取文件后缀名''' def get_file_extension(file): return os.path.splitext(file)[1] '''創建文件目录,并返回该目录''' def mkdir(path): # 去除左右两边的