使用WebClient 类对象的DownloadString 属性获取内容
WebClient 类主要用于从提供的Url 中获取资源以及向制定的Url 传输参数:详细的方法大家可以参考官方网站:WebClient 類別 (System.Net) | Microsoft Learn
//创建一个webclient对象
WebClient web = new WebClient();
//定义对象的编码语言,此处或者是gb2312
web.Encoding = System.Text.Encoding.UTF8;
//获取页面的字符串
string mailHtml = web.DownloadString(bodyUrl);
注意:编码分utf-8、gb2312,获取下载的内容时默认为“gb2312”,可能会存在乱码的问题,需要如上代码所示设置代码格式。
使用C# Webrequest 类来获取
编程方式模拟web请求,利用webrequest可以实现 相当于一个浏览器请求一个网页的效果,获取返回结果;
//Get请求中请求参数等直接拼接在url中,WebRequest是抽象类,所以这里使用create 的声明方法
WebRequest request = WebRequest.Create(@"http://www.baidu.com");
//HttpWebRequest 支持 GET 和 POST 两种方式进行请求,
request.Method = "GET";
//HttpWebRequest 对象 使用 .GetResponse() 方法, 获取返回结果,
//.GetResponse() 返回的是一个 WebResponse 对象。
WebResponse resp = request.GetResponse();
//从网络资源中返回数据流
string str = resp.ToString();
Stream stream = resp.GetResponseStream();
StreamReader sr = new StreamReader(stream, Encoding.UTF8);
string result = sr.ReadToEnd();
Console.WriteLine(str);
//关闭流数据
stream.Close();
sr.Close();
上述就是C# 简单的使用get 方式请求目标路径,最后拿到了目标页面的HTML字符串
以上就是对页面内容获取 WebClient 和 WebReqest 的使用,但是这两个类的用法远不止这些,又需要用到方法请求和感兴趣的小伙伴可以去 深入了解一下。下面列出WebRequst 类使用频率较高的的属性。
1、HttpWebRequest 常用属性
- AllowAutoRedirect:获取或设置一个值,该值指示请求是否应跟随重定向响应。
- CookieContainer:获取或设置与此请求关联的cookie。
- Credentials:获取或设置请求的身份验证信息。
- KeepAlive:获取或设置一个值,该值指示是否与 Internet 资源建立持久性连接(长链接)。
- MaximumAutomaticRedirections:获取或设置请求将跟随的重定向的最大数目。
- Proxy:获取或设置请求的代理信息。
- SendChunked:获取或设置一个值,该值指示是否将数据分段发送到 Internet 资源。
- Timeout:获取或设置请求的超时值。
- UserAgent:获取或设置 User-agent HTTP 标头的值
- ContentType:Http内容类型
- Headers:指定组成 HTTP 标头的名称/值对的集合。
2、HttpWebRequest 中的 ContentType
- 普通文本: “text/plain”
- JSON字符串: “application/json”
- 数据流类型(文件流): “application/octet-stream”
- 表单数据(键值对): “application/x-www-form-urlencoded”
- 多分部数据: “multipart/form-data”