Windows phone 8 获取同步的WP8Web请求

Windows phone 8 获取同步的WP8Web请求,windows-phone-8,httpwebrequest,windows-phone,.net-4.5,Windows Phone 8,Httpwebrequest,Windows Phone,.net 4.5,我试图将一些代码从Windows窗体应用程序移植到WP8,但遇到了一些有关异步调用的问题。 基本思想是进行一些UAG身份验证。在Windows窗体代码中,我在门户网站主页上进行了一次访问,并等待cookies。然后,我将这些cookie传递到UAG服务器的验证URL的POST请求中。由于所有的步骤都是顺序的和同步的,所以在表单中都可以很好地工作 现在,当我开始将它移植到WP8时,我注意到的第一件事是GetResponse()不可用,而是我必须使用BeginGetResponse(),它是异步的,

我试图将一些代码从Windows窗体应用程序移植到WP8,但遇到了一些有关异步调用的问题。 基本思想是进行一些UAG身份验证。在Windows窗体代码中,我在门户网站主页上进行了一次访问,并等待cookies。然后,我将这些cookie传递到UAG服务器的验证URL的POST请求中。由于所有的步骤都是顺序的和同步的,所以在表单中都可以很好地工作

现在,当我开始将它移植到WP8时,我注意到的第一件事是GetResponse()不可用,而是我必须使用BeginGetResponse(),它是异步的,并调用回调函数。这对我没有好处,因为我需要确保这一步在我发布之前完成

我的Windows窗体代码如下所示(取自):

问题是这段代码依赖于同步操作(首先调用Connect(),然后调用ValidateCredentials()),而WP8似乎不支持Web请求的同步操作。我可以将这两个功能合并为一个功能,但这并不能完全解决我的问题,因为稍后需要扩展以访问UAG背后的资源,因此需要模块化设计

有没有办法“强制”同步


谢谢

您仍然可以使用异步模型继续执行回调函数中的步骤。或者您可以使用新的
HttpClient
,它可以与
wait
关键字一起使用,这样您就可以以同步的方式编程了

您可以通过nuget获取
HttpClient

install-package Microsoft.Net.Http

您仍然可以使用异步模型继续回调函数中的步骤。或者您可以使用新的
HttpClient
,它可以与
wait
关键字一起使用,这样您就可以以同步的方式编程了

您可以通过nuget获取
HttpClient

install-package Microsoft.Net.Http

我尝试使用异步模型,但无法在BeginGetRespone()上等待它,这意味着我必须重新编写代码的主要部分。。至少到目前为止,这是我的理解。尽管HttpClient看起来很有趣,但我还是要试一试,非常感谢!是的,对于HttpClient,您只需编写如下var response=await client.GetAsync(url)之类的代码;然后继续,就好像它是同步的一样。太棒了,我明天早上第一件事就是试用它。我试过使用异步模型,但在BeginGetRespone()上无法让它等待,这意味着我必须重新编写代码的主要部分。。至少到目前为止,这是我的理解。尽管HttpClient看起来很有趣,但我还是要试一试,非常感谢!是的,对于HttpClient,您只需编写如下var response=await client.GetAsync(url)之类的代码;然后像同步一样继续。太棒了,我明天早上第一件事就是试试。