Windows 8 如何取消HttpClient获取Web请求
是否可以在Windows 8中取消Windows 8 如何取消HttpClient获取Web请求,windows-8,windows-runtime,c#-5.0,Windows 8,Windows Runtime,C# 5.0,是否可以在Windows 8中取消HttpClient GET web请求。如果用户在页面上按back键,我正在寻找取消web请求的解决方案。在我的应用程序中,我使用静态类创建web请求 我在应用程序中使用了mvvmlight和staticviewmodels 在当前情况下,即使用户按下后退按钮, vm保持活动状态,回调到达并在vm中执行 因此,我正在寻找一个解决方案来取消背压请求 试试这个 protected async override void OnNavigatedTo(Navigati
HttpClient GET web请求。
如果用户在页面上按back键,我正在寻找取消web请求的解决方案。在我的应用程序中,我使用静态类
创建web请求
我在应用程序中使用了mvvmlight
和staticviewmodels
在当前情况下,即使用户按下后退按钮,
vm
保持活动状态,回调到达并在vm
中执行
因此,我正在寻找一个解决方案来取消背压请求 试试这个
protected async override void OnNavigatedTo(NavigationEventArgs e)
{
await HttpGetRequest();
}
public CancellationTokenSource cts = new CancellationTokenSource();
private async Task HttpGetRequest()
{
try
{
DateTime now = DateTime.Now;
var httpClient = new HttpClient();
var message = new HttpRequestMessage(HttpMethod.Get, "https://itunes.apple.com/us/rss/toppaidapplications/limit=400/genre=6000/json");
var response = await httpClient.SendAsync(message, cts.Token);
System.Diagnostics.Debug.WriteLine("HTTP Get request completed. Time taken : " + (DateTime.Now - now).TotalSeconds + " seconds.");
}
catch (TaskCanceledException)
{
System.Diagnostics.Debug.WriteLine("HTTP Get request canceled.");
}
}
private void btnCancel_Click(object sender, RoutedEventArgs e)
{
cts.Cancel();
}
您可以使用CancellationToken取消异步方法。这是一种方式,可能是其他方式。请添加CancelationToken取消请求的方式作为答案。然后我会将其标记为答案请注意,对于Windows 8.1运行时,情况发生了“稍微”的变化,因此当前的答案仅适用于Windows 8.0中的运行时。OP还要求仅适用于W8。请看问题的标签。我确实看到了标签,您的答案对于Windows 8来说非常好。刚刚为那些像我一样的人添加了评论,他们可能会在最新(到目前为止)的窗口中查找类似的信息,并将它们指向适当的位置。