API поиска iTunes получает 0 результатов в программе на C#, но 1 результат в браузере Chrome
Я создал программу на 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" это будет следующая ссылка:
Если я открою эту ссылку, я получу текстовый файл с нужным мне результатом. Но если я получу это в C# со следующим кодом:
WebClient client = new WebClient();
var json = client.DownloadString(link);
Thread.Sleep(3100);
Я получаю 0 результатов. Может кто-нибудь помочь мне исправить это?
У меня есть много названий фильмов, название которых названо оригинальным названием iTunes в Германии.
Спасибо:)
2 ответа
Добавьте User Agent в заголовок запроса и попробуйте.
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
Ваша ссылка неверна.
У тебя есть:
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. Или создайте свой URL, используя UriBuilder
учебный класс.