全栈工程师开发手册 (作者:栾鹏)
​​ c#教程全解​​

c#获取网页源代码的5种方式,发送请求获取响应数据流,按照不同的编码转换为响应字符串

测试代码

static void Main()
{
string back = getwebcode1;
System.Console.WriteLine(back);
}

第1种获取方式

public static string getwebcode1(string url, string encoder)
{
WebClient myWebClient = new WebClient();
byte[] myDataBuffer = myWebClient.DownloadData(url);
string SourceCode = Encoding.GetEncoding(encoder).GetString(myDataBuffer);
return SourceCode;
}

第2种获取方式

public static string getwebcode2(string url, string encoder)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
//request.Method = "GET ";
Stream receiveStream = response.GetResponseStream();
StreamReader readStream = new StreamReader(receiveStream, Encoding.GetEncoding(encoder));
string SourceCode = readStream.ReadToEnd();
response.Close();
readStream.Close();
return SourceCode;
}

第3种获取方式

public static string getwebcode3(string url, string encoder)
{
WebClient wc = new WebClient();
wc.Credentials = CredentialCache.DefaultCredentials;
Byte[] pageData = wc.DownloadData(url);
string SourceCode = Encoding.GetEncoding(encoder).GetString(pageData);
wc.Dispose();
return SourceCode;
}

第4种获取方式

public static string getwebcode4(string url, string encoder)
{
WebClient wc = new WebClient();
wc.Credentials = CredentialCache.DefaultCredentials;
Stream resStream = wc.OpenRead(url);
StreamReader sr = new StreamReader(resStream, Encoding.GetEncoding(encoder));
string SourceCode = sr.ReadToEnd();
resStream.Close();
wc.Dispose();
return SourceCode;
}

第5种获取方式

public static string getwebcode5(string url, string encoder)
{
WebRequest request = WebRequest.Create(url);
WebResponse response = request.GetResponse();
Stream resStream = response.GetResponseStream();
StreamReader sr = new StreamReader(resStream, Encoding.GetEncoding(encoder));
string SourceCode = sr.ReadToEnd();
resStream.Close();
sr.Close();
return SourceCode;
}