iTunes Search API在c#programm中获得0结果,但在Chrome浏览器中获得1个结果

时间:2017-08-22 13:00:16

标签: c# itunes itunes-search-api

我创建了一个C#程序,用电影的标题搜索电影细节。 我创建链接:

        string link = "https://itunes.apple.com/search?";

        link += "term=";

        string cTitle = Titel.Replace(" ", "+");
        link += cTitle;

        link += "&country=DE";
        link += "&media=movie";
        link += "&entity=movie";
        link += "&attribute=movieTerm";
        link += "&limit=1";

电影名称"巴士657"这将是以下链接:

https://itunes.apple.com/search?term=Bus+657&country=DE&media=movie&entity=movie&attribute=movieTerm&limit=1

如果我打开该链接,我会得到一个包含我需要的结果的txt文件。但如果我使用以下代码在c#中得到它:

WebClient client = new WebClient();
var json = client.DownloadString(link);
Thread.Sleep(3100);

我得到0结果。 有人可以帮我解决这个问题吗?

我有很多电影片名,其标题是由德国商店的原始iTunes标题命名的。

Thx:)

2 个答案:

答案 0 :(得分:1)

将用户代理添加到请求标头并尝试。

WebClient client = new WebClient();
client.Headers.Add("user-agent","Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36");
var json = client.DownloadString(link);

我收到了"resultCount":1

答案 1 :(得分:0)

您的链接错误。

你有:

                                        BZZZZT - should be %20
                                        ↓
https://itunes.apple.com/search?term=Bus+657&country=DE&media=movie&entity=movie&attribute=movieTerm&limit=1

您的电影名称是“Bus 657”。该空格应编码为%20,而不是+。您的链接应该是:

https://itunes.apple.com/search?term=Bus%20657&country=DE&media=movie&entity=movie&attribute=movieTerm&limit=1

通过更正的链接,您可以获得结果。您应该使用HttpServerUtility.UrlEncode或其他一些功能对URL进行正确的URL编码。或者使用UriBuilder类构建您的网址。