iTunes 搜索 API 在 c# 程序中获得 0 个结果,但在 Chrome 浏览器中获得 1 个结果

iTunes Search API get 0 results at c# programm but 1 result at Chrome browser

我创建了一个 C# 程序,它使用电影的名称搜索电影的详细信息。 我创建 link:

        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";

电影名称 "Bus 657" 如下 link:

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

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

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

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

我有很多电影片名,这些片名都是以德国商店的原 iTunes 片名命名的。

谢谢:)

你的link错了。

您有:

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

您的电影名称是 "Bus 657"。 space 应该编码为 %20,而不是 +。您的 link 应该是:

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

使用更正后的 link,您会得到结果。你应该使用 HttpServerUtility.UrlEncode or some other function to properly URL encode your URL. Or build your URL using the UriBuilder class.

将用户代理添加到请求中 header 并尝试。

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