2013-12-13 46 views
0

如何在windows phone 7和8中同步啓動應用程序啓動時的httpwebrequest,以便基於服務器的響應可以更改啓動頁面。如何在wp7上啓動httpwebrequest應用程序啓動

private void Application_Launching(object sender, LaunchingEventArgs e) 
{ 
    // http request and respose b 
    // based on response select the start page 
} 
+0

只支持異步請求。 – thegiga

回答

1

以及只有async請求被執行。對於WP7,您可以執行async請求並等待response,根據response您可以按照您的邏輯導航到頁面。要做到這一點,在Startup Page

class's constructor調用方法一樣NavigateToPages();

現在這種方法,你可以打電話給你想要的http reqeust,當你得到response轉到頁一樣,

void NavigateToPage() 
{ 
    WebClient client = new WebClient(); 
    client.DownloadStringCompleted += (object sender, DownloadStringCompletedEventArgs e) => 
    { 
     var result = e.Result; 
     //Navigate to page 
    } 
    client.DownloadStringAsync(new Uri("<your web request")); 
} 

這將等到你得到response。同時表明你要請求web service用戶可以添加ProgressIndicator和啓動web request啓動它,只是把「讀取響應」作爲text,並在response使其empty ""之前。另外,建議您在try-catch-finally區塊內撥打請求。因此,如果互聯網關閉或出現問題reponse應用程序不應該崩潰。

我爲WP7做了這個,我認爲也應該爲WP8工作。如果你想嘗試一下。

0

那麼你不能進行同步呼叫。

你可以做的是下一件最好的事情。使方法異步並使用http客戶端的PCL版本。

這將允許你的邏輯以類似的方式同步(儘管仍然是異步)。

0

作爲@Hermit Dave建議,你不能在WP中進行同步http請求,並使它異步將打破你當前的應用程序邏輯。在調用返回響應之前,應用程序執行可能會退出Application_Launching方法。

也許你可以創建一個默認頁面作爲啓動頁面顯示某種加載動畫和一些提示,讓用戶瞭解應用程序當前正在處理的內容。在該頁面中進行異步http請求。在回調中,根據響應重定向到適當的頁面。

相關問題