Windows runtime 如何在C#/XAML Metro应用程序中使用HttpWebRequest(或)HttpClient进行同步服务调用?
我正在开发一个C#/Xaml Metro应用程序,根据需求,我希望有一个同步服务调用,而不是异步服务调用 这是我在异步操作中使用的,但我想进行Synchronus服务调用:Windows runtime 如何在C#/XAML Metro应用程序中使用HttpWebRequest(或)HttpClient进行同步服务调用?,windows-runtime,microsoft-metro,httpwebrequest,dotnet-httpclient,Windows Runtime,Microsoft Metro,Httpwebrequest,Dotnet Httpclient,我正在开发一个C#/Xaml Metro应用程序,根据需求,我希望有一个同步服务调用,而不是异步服务调用 这是我在异步操作中使用的,但我想进行Synchronus服务调用: HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://xxxxxxx"); request.Method = "POST"; request.Credentials = new NetworkCredential("xxx
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://xxxxxxx");
request.Method = "POST";
request.Credentials = new NetworkCredential("xxx", "xxx");
using (Stream requestStream = await request.GetRequestStreamAsync())
{
}
如何在C#/XAML Metro应用程序中使用HttpWebRequest或HttpClient进行同步服务调用?进行较小的更改。使用
request.GetRequestStreamAsync()
,而不是wait request.GetRequestStreamAsync().Result
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://xxxxxxx");
request.Method = "POST";
request.Credentials = new NetworkCredential("xxx", "xxx");
using (Stream requestStream = request.GetRequestStreamAsync().Result)
{
}
更多信息:
我正在开发一个C#/Xaml Metro应用程序,根据需求,我希望有一个同步服务调用,而不是异步服务调用
正确的解决办法是改变“要求”。Metro应用程序应该是异步的,而不是同步的。如果您开发的Metro应用程序具有同步UI(这很难,但可能),它可能会被应用商店拒绝。我使用此方法,因为它允许在等待之前执行其他工作:
var t = request.GetRequestStreamAsync();
//do other work here
t.Wait();
using (Stream requestStream = t.Result)
{
}
这是我要求的一部分。你能告诉我怎么做,或者告诉我怎么等到异步调用完成(除了使用wait)吗??我想完全等待,在异步调用完成之前不做任何操作??您应该使用异步。这是一个更好的模型,意味着您的应用程序不太可能对用户感到“锁定”和无响应。添加用于“身份验证”的UI,而不是进行同步