UWP及.NET Framework 4 Client Profile適用的HttpClient();

如果你正在使用.NET Framework 4 Client Profile,或者是使用UWP(Universal Windows Platform)來進行程式設計,那麼你一定會發現再也無法使用System.Web下的所有組件(DLL)的參考,這時候要不就是切換到全版本的.NET Framework(目前尚未確定UWP是否可切換,但理論上不行),不然就是乖乖地使用比較新的System.Net、System.Net.Http方式來進行編碼啦!

因為自己在非重要的場合中,慣於使用System.Net.WebClient()來進行實作,這一點在新的UWP架構中也是被拿掉的,要不你就是改採用傳統的System.Net.HttpWebRequest()及System.Net.HttpWebResponse()來實作,要不就是認命一點,使用System.Net.Http.HttpClient()的非同步來實作。本篇文章即為使用System.Net.Http.HttpClient()方式,記載於此供日後快速參考。

利用System.Net.Http.HttpClient()來取得網站網頁資訊

private async void Button_Click(object sender, RoutedEventArgs e)
{
	uResult.Text = await DownloadPageAsync();
}

static async System.Threading.Tasks.Task<string> DownloadPageAsync()
{
	string cURL = "https://www.google.com/";
	using (HttpClient oHC = new HttpClient())
	{
		using (HttpResponseMessage oHR = await oHC.GetAsync(cURL))
		{ 
			using (HttpContent oCT = oHR.Content)
			{
				string cResult = await oCT.ReadAsStringAsync();
				if (cResult.Length > 1000)
					return cResult.Substring(0, 1000);
				else
					return cResult;
			}
		}
	}
}
System.Net System.Net.Http HttpClient() async await