Windows Phone網路HttpWebRequest用法
在Windows Phone系統中,通過HttpWebRequest類可以很容易的傳送網路請求,獲取網路資料。HttpWebRequest是非同步操作,不會堵塞主執行緒。
1.通過HttpWebRequest.CreateHttp()方法可以建立一個HttpWebRequest,下面程式碼簡單實現傳送一個GET請求。
httpGet
public void httpGet()
{
try
{
//請求地址
String url = "http://www.2cto.com/";
//建立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)
{
//異常處理
}
}
通過HttpWebResponse可以獲取返回的資料,在獲取資料後,要想將資料顯示到介面中,這裡要主要一個問題。由於HttpWebRequest是非同步操作,所以這裡應該有一個執行緒來處理網路,大家都知道Windows Phone中線上程裡是不能操作UI的,這個需要交個UI主執行緒來處理,所以程式碼中用到了Deployment.Current.Dispatcher.BeginInvoke。
3.上面是簡單的GET請求,POST請求和GET請求相比,多了一個傳送請求體的操作過程。以下程式碼為POST請求,應對部分操作函式仍然是responseCallback。
httpPost
public void httpPost()
{
try
{
//請求地址
String url = "http://www.2cto.com/";
//建立WebRequest類
HttpWebRequest request = HttpWebRequest.CreateHttp(new Uri(url));
//設定請求方式GET POST
request.Method = "POST";
//返回應答請求非同步操作的狀態
request.BeginGetRequestStream(requestCallback, request);
}
catch (WebException e)
{
//網路相關異常處理
}
catch (Exception e)
{
//異常處理
}
}
private void requestCallback(IAsyncResult result)
{
try
{
//獲取非同步操作返回的的資訊
HttpWebRequest request = (HttpWebRequest)result.AsyncState;
//結束對 Internet 資源的非同步請求
StreamWriter postStream = new StreamWriter(request.EndGetRequestStream(result));
postStream.WriteLine("作者:宇之樂");
postStream.WriteLine("");
//返回應答請求非同步操作的狀態
request.BeginGetResponse(responseCallback, request);
}
catch (WebException e)
{
//異常處理
}
catch (Exception e)
{
//異常處理
}
}
相關文章
- HttpWebRequest和WebClient的用法HTTPWebclient
- Windows Phone SDK 8/8.1 官方下載Windows
- Windows Phone應用效能監控與分析技巧Windows
- Windows網路命令Windows
- 網路命令ifconfig用法詳解。
- PHP yield 高階用法——網路PHP
- 微軟官方Windows Phone、Windows 10 Mobile裝置恢復工具被曝遭到移除微軟Windows
- Win10系統如何禁用Windows Phone-PC連結Win10Windows
- 深入理解Windows Phone 8.1 UI控制元件程式設計WindowsUI控制元件程式設計
- Windows常用網路操作命令Windows
- windows10系統設定和使用Your Phone應用的方法Windows
- 機智雲SOC中網路授時用法
- WSL2共享Windows代理網路Windows
- Codeforces 1017 CThe Phone Number
- C#:使用HttpWebRequest後保持Session,再使用一個HttpWebRequest實現瀏覽、下載等效果C#HTTPWebSession
- Windows server 2016的安裝網路配置WindowsServer
- Leetcode 17 Letter Combinations of a Phone NumberLeetCode
- What is a mobile phone film cutting machine?Mac
- windows10網路防火牆在哪裡設定 windows10自帶網路防火牆怎麼設定Windows防火牆
- 伺服器ping命令用法有什麼——宇眾網路伺服器
- Windows bat指令碼之for迴圈用法WindowsBAT指令碼
- Leetcode – 017. Letter Combinations of a Phone NumberLeetCode
- 天貓公佈雙11資料:Phone XS Max銷量比Phone XS多10倍
- windows下netstat及網路檢視工具的使用Windows
- 瞄準Windows的新興殭屍網路:KrakenWindows
- win10怎麼更改網路屬性_要如何更改網路屬性windows10Win10Windows
- [20200310]測試網路狀態TIME_WAIT(windows).txtAIWindows
- windows10系統如何關閉網路憑證Windows
- 如何保護Windows網路免受勒索軟體攻擊Windows
- Windows Server 2016-Hyper-V網路虛擬化概述WindowsServer
- Windows 系統下常用的八個網路配置命令Windows
- Windows Phone 8初學者開發—第13部分:設定LongListSelector中磁貼的樣式Windows
- LeetCode Letter Combinations of a Phone Number(017)解法總結LeetCode
- NetworkEmulator For windows tools 開啟網路模擬後電腦無法上網Windows
- windows10系統下安全模式如何連線網路Windows模式
- windows主機批處理命令檢查網路卡網路自動重啟網路卡Windows
- windows10網路連線正常無法上網最佳解決方法Windows
- kvm網路,docker網路,,vm網路Docker
- Linux和Windows下網路測試工具的安裝使用(iperf)LinuxWindows