Ambil HTML melalui proxy sebelum diurai dengan Html Agility Pack
Gabungkan HttpClient yang dikonfigurasi dengan proxy dan Html Agility Pack sambil menjaga galat jaringan tetap terpisah dari penguraian HTML.
using var handler = new HttpClientHandler
{
UseProxy = true,
Proxy = new WebProxy("http://proxy.example:8080")
};
using var client = new HttpClient(handler);
string html = await client.GetStringAsync(
"https://www.example.com/catalog");
var document = new HtmlAgilityPack.HtmlDocument();
document.LoadHtml(html);Fragmen .NET modern ini memakai System.Net dan System.Net.Http. Klien yang dikonfigurasi menangani perutean jaringan, dan Html Agility Pack menerima string HTML yang dikembalikan. Pertahankan klien yang dikonfigurasi dengan tepat untuk pekerjaan berkelanjutan alih-alih membangun ulang kumpulannya untuk setiap halaman.
Untuk contoh halaman publik ini, kandidat tanpa autentikasi dari daftar proxy HTTP dapat menggantikan perantara. Ganti tujuan secara terpisah. URL situs web mempertahankan identitas TLS-nya. Kredensial proxy yang terautentikasi ada pada WebProxy; baik kredensial situs web maupun verifikasi yang dimatikan tidak menggantikannya.
GetStringAsync memperlakukan status HTTP yang tidak berhasil sebagai galat. Jangan ubah unduhan yang gagal menjadi HtmlDocument kosong. Jika aplikasi memerlukan header, detail status, atau isi galat, gunakan operasi HTTP yang berorientasi respons dan periksa sebelum mengurai.
Metode string menghindari konversi UTF-8 tambahan tanpa syarat atas byte mentah. Jika Anda mengambil byte dengan sengaja, bawa persyaratan pengodean respons dan dokumen ke dalam pendekodean.
LoadHtml menghasilkan dokumen yang terurai; ia tidak menjalankan skrip, memuat gaya, atau mengikuti tautan. Selesaikan tautan relatif berikutnya terhadap lokasi respons, dan ingat bahwa elemen yang dirender peramban mungkin tidak ada dalam sumber yang diunduh. Setiap respons sebaiknya menghasilkan dokumennya sendiri meskipun permintaan berbagi klien HTTP yang dikonfigurasi sama.