-1

我创建了一个 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";

电影名称为“Bus 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 片名命名的。

谢谢 :)

4

2 回答 2

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

于 2017-08-22T13:20:17.420 回答
0

你的链接是错误的。

你有:

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

您的电影名称是“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或者使用该类构建您的 URL 。

于 2017-08-22T13:15:55.313 回答