webclient无法获取html文件,C# WebClient获取网页源码的方法
效果如圖
完整代碼如下using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
//引入以下命名空間
using System.Net;
using System.IO;
using System.Threading;
namespace splitstr
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Thread t = null;
Encoding EE = Encoding.UTF8;//網頁編碼,根據實際情況來哈
private void bt_gethtml_Click(object sender, EventArgs e)
{
if (tb_url.Text.Trim() != "")
{
t = new Thread(new ThreadStart(Ss));
t.Start();
}
}
private delegate void SetObject();
private void Ss()
{
//CheckForIllegalCrossThreadCalls = false;
this.Invoke(new SetObject(delegate { bt_gethtml.Enabled = tb_url.Enabled = false; }));
this.Invoke(new SetObject(delegate { richTextBox1.Text = GetHtml(tb_url.Text.Trim(), EE); }));
this.Invoke(new SetObject(delegate { bt_gethtml.Enabled = tb_url.Enabled = true; }));
t.Abort();
}
private string GetHtml(string url,Encoding ecd)
{
//參數說明:目標網址,網頁編碼
string htmldata = "獲取網頁內容失敗";
try
{
WebClient wclient = new WebClient();//實例化WebClient類對象
wclient.BaseAddress = url;//設置WebClient的基URI
wclient.Encoding = ecd;//指定下載字符串的編碼方式
//為WebClient類對象添加標頭
wclient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
//使用OpenRead方法獲取指定網站的數據,并保存到Stream流中
Stream stream = wclient.OpenRead(url);
//使用流Stream聲明一個流讀取變量sreader
StreamReader sreader = new StreamReader(stream);
string str = string.Empty;//聲明一個變量,用來保存一行從WebCliecnt下載的數據
//循環讀取從指定網站獲得的數據
while ((str = sreader.ReadLine()) != null)
{
htmldata += str + "\n";
}
}
catch { }
return htmldata;
}
}
}
當然獲取網頁源碼還有其他的方法,過后再分享
總結
以上是生活随笔為你收集整理的webclient无法获取html文件,C# WebClient获取网页源码的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html中给文章怎么设置行高,css如何
- 下一篇: html网页制作图案,巧用CSS滤镜做图