下面是使用C#获取网页HTML源码的例子的完整攻略。
1. 了解HttpWebRequest和HttpWebResponse
在使用C#获取网页HTML源码之前,需要先了解两个类:HttpWebRequest和HttpWebResponse。HttpWebRequest是用于向服务器发送Web请求的类,HttpWebResponse是用于接收服务器返回Web响应的类。这两个类是System.Net命名空间下的。
以下是HttpWebRequest类定义的格式:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("URL");
request.Method = "GET/POST";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
2. 示例1:使用GET方式获取HTML源码
以下是使用GET方式获取HTML源码的示例代码:
using System;
using System.IO;
using System.Net;
namespace GetHTMLWithCSharp
{
class Program
{
static void Main(string[] args)
{
// 构造请求
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.baidu.com");
request.Method = "GET";
// 获取响应
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
// 读取响应内容
StreamReader streamReader = new StreamReader(response.GetResponseStream());
string content = streamReader.ReadToEnd();
Console.WriteLine(content);
// 关闭响应流
streamReader.Close();
response.Close();
}
}
}
在上面的代码中,我们首先构造了一个HttpWebRequest对象,指定了请求的URL和请求方式。然后调用GetResponse方法获取响应,接着通过StreamReader对象读取响应流,并将响应内容转化为字符串进行输出。最后关闭响应流。
3. 示例2:使用POST方式获取HTML源码
以下是使用POST方式获取HTML源码的示例代码:
using System;
using System.IO;
using System.Net;
using System.Text;
namespace GetHTMLWithCSharp
{
class Program
{
static void Main(string[] args)
{
// 构造请求
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.example.com");
request.Method = "POST";
// 构造POST数据(使用UTF-8编码方式)
string postData = "username=test&password=123456";
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
// 设置请求头信息
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteArray.Length;
// 获取请求流
Stream dataStream = request.GetRequestStream();
// 将POST数据写入请求流中
dataStream.Write(byteArray, 0, byteArray.Length);
// 关闭请求流
dataStream.Close();
// 获取响应
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
// 读取响应内容
StreamReader streamReader = new StreamReader(response.GetResponseStream());
string content = streamReader.ReadToEnd();
Console.WriteLine(content);
// 关闭响应流
streamReader.Close();
response.Close();
}
}
}
在上面的代码中,首先构造了一个HttpWebRequest对象,指定了请求的URL和请求方式,并且构造了POST数据。然后设置了请求头信息,包括Content-Type和Content-Length两个参数。接着获取请求流,并将POST数据写入请求流中。最后获取响应,读取响应流的内容,关闭响应流。
至此,使用C#获取网页HTML源码的过程就结束了。通过了解HttpWebRequest和HttpWebResponse,可以使用GET和POST两种方式获取网页HTML源码。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用C#获取网页HTML源码的例子 - Python技术站