在Windows Phone系統中,通過HttpWebRequest類可以很容易的發送網路請求,擷取網路資料。HttpWebRequest是非同步作業,不會堵塞主線程。
1.通過HttpWebRequest.CreateHttp()方法可以建立一個HttpWebRequest,下面代碼簡單實現發送一個GET請求。
httpGet public void httpGet() { try { //請求地址 String url = "http://www.cnblogs.com/huizhang212/"; //建立WebRequest類 HttpWebRequest request = HttpWebRequest.CreateHttp(new Uri(url)); //佈建要求方式GET POST request.Method = "GET"; //返回應答請求非同步作業的狀態 request.BeginGetResponse(responseCallback, request); } catch (WebException e) { //網路相關異常處理 } catch (Exception e) { //異常處理 } }
2.應答資料接收部分。
responseCallback private void responseCallback(IAsyncResult result) { try { //擷取非同步作業返回的的資訊 HttpWebRequest request = (HttpWebRequest)result.AsyncState; //結束對 Internet 資源的非同步請求 HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(result); //解析應答頭 //parseRecvHeader(response.Headers); //擷取請求體資訊長度 long contentLength = response.ContentLength; //擷取應答碼 int statusCode = (int)response.StatusCode; string statusText = response.StatusDescription; //應答頭資訊驗證 using (Stream stream = response.GetResponseStream()) { //擷取請求資訊 StreamReader read = new StreamReader(stream); string msg = read.ReadToEnd(); Deployment.Current.Dispatcher.BeginInvoke(() => { textBlock1.Text = msg; }); } } catch (WebException e) { //串連失敗 } catch (Exception e) { //異常處理 } }
查看本欄目更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/OS/extra/