Asp.net mvc 4 如何在MVC4应用程序中成功使用HttpClient访问iTunes搜索服务
我正在编写一个MVC4应用程序,在控制器中,我需要能够调用web服务来访问iTunes搜索服务,以便获得DVD的封面图片 我有以下非常简单的代码Asp.net mvc 4 如何在MVC4应用程序中成功使用HttpClient访问iTunes搜索服务,asp.net-mvc-4,async-await,dotnet-httpclient,Asp.net Mvc 4,Async Await,Dotnet Httpclient,我正在编写一个MVC4应用程序,在控制器中,我需要能够调用web服务来访问iTunes搜索服务,以便获得DVD的封面图片 我有以下非常简单的代码 public static string GetAlbumArt(Movie movie) { Task<string> lookupTask = LookupAlbumArt(movie.Title, movie.Year); lookupTask.Wait(5000); if (lookupTask.IsCompleted)
public static string GetAlbumArt(Movie movie) {
Task<string> lookupTask = LookupAlbumArt(movie.Title, movie.Year);
lookupTask.Wait(5000);
if (lookupTask.IsCompleted)
{
return lookupTask.Result;
}
else
{
return Timeout;
}
}
private static async Task<string> LookupAlbumArt(string title, int year)
{
using (var client = new HttpClient())
{
string response= await client.GetStringAsync(
"http://itunes.apple.com/search?term=hoosiers&media=movie"
);
return response;
}
}
当我运行此命令并在GetAlbumArt中的返回超时行以及LookupAlbumArt中的返回响应行设置断点时,首先命中超时断点,然后命中LookupAlbumArt返回语句,正确的内容在响应变量中
如果我从lookupTask.Wait5000中删除timeout参数,wait-GetStringAsync调用将永远不会返回,页面也永远不会加载
这感觉像是一项非常简单的任务,我很难说我做错了什么。看起来可能是同一个问题。从那里链接的问题有更多的细节。谢谢马克,当我试图解决这个问题时,不知怎么的我错过了。我不是有意要贴一份副本的。我希望Google上最热门的.NET HttpClient示例考虑到这一点!