2013-12-13 48 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请求。在回调中,根据响应重定向到适当的页面。

相关问题