Johny Flow Ответов: 1

Возьмите информацию о фильме из OMDB в C# (пожалуйста, покажите пример)


Я задал вопрос о том, как получить информацию о фильме из интернета... и кто - то сказал: "Просто используйте методы веб-сервиса и получите вывод в формате JSON" - поэтому я хочу знать, как получить вывод? Например: мое программное обеспечение имеет 5-4 текстовых поля и имеет поле поиска с кнопкой - поэтому я хочу, чтобы мое программное обеспечение получало информацию обо всем, что я ищу, и заполняло эти текстовые поля этой информацией. Например, когда я искал "Железного человека", программное обеспечение получало" год(например, 2015) "из omdb и помещало этот 2015 год в текстовое поле"год". Я новичок в C# - не могли бы вы показать мне пример кода о том, как это сделать?

http://www.omdbapi.com/?t=Iron%20man[^]

Что я уже пробовал:

Я задал вопрос о том, как получить информацию о фильме из интернета... и кто - то сказал: "Просто используйте методы веб-сервиса и получите вывод в формате JSON" - поэтому я хочу знать, как получить вывод?

Richard MacCutchan

Ваша ссылка показывает вывод JSON из какого-то веб-сервиса, так что это все. В чем проблема?

Johny Flow

Я не знаю, как написать код, чтобы моя программа автоматически заполняла текстовые поля этой информацией и сохраняла ее. ( я хочу создать что-то вроде "movie label" ) movie label : http://www.codeaero.com/movie-label/

AnvilRanger

В двух словах ваш вопрос звучит так:" как мне писать программное обеспечение?", и это далеко выходит за рамки данного QA. Если бы вы предоставили более подробную информацию о том, с чем у вас возникли проблемы, мы могли бы вам помочь, но вы лучше всех судите о своих навыках.

Вы говорите, что вы новичок в C#, или вы хотите сказать, что вы новичок в разработке вообще. Один из самых важных навыков, которые вам понадобятся как разработчику, - это умение задавать вопросы.

Я предполагаю, что вам нужно знать, как вызвать api omdb и обработать JSON. Посмотрите на HTTPClient. А после этого посмотрите на использование Json.NET для обработки работы с ответом JSON.

Johny Flow

да,мне нужно было знать, как вызвать api omdb. спасибо.

Johny Flow

пожалуйста, взгляните на это - это мой вопрос.
http://www.codeproject.com/Questions/1105851/How-to-get-movie-information-from-imdb-in-Csharp

Karthik_Mahalingam

приложение windows или веб ?

Johny Flow

окна

Karthik_Mahalingam

проверьте мое решение

1 Ответов

Рейтинг:
9

Karthik_Mahalingam

попробовать это

Создайте такой класс

public class ImdbEntity
  {
      public string Title { get; set; }
      public string Year { get; set; }
      public string Rated { get; set; }
      public string Released { get; set; }
      public string Runtime { get; set; }
      public string Genre { get; set; }
      public string Director { get; set; }
      public string Writer { get; set; }
      public string Actors { get; set; }
      public string Plot { get; set; }
      public string Language { get; set; }
      public string Country { get; set; }
      public string Awards { get; set; }
      public string Poster { get; set; }
      public string Metascore { get; set; }
      public string imdbRating { get; set; }
      public string imdbVotes { get; set; }
      public string imdbID { get; set; }
      public string Type { get; set; }
      public string Response { get; set; }
  }


используйте приведенный ниже код, чтобы заполнить значения информации о фильме в соответствующие текстовые поля,
настройте его в соответствии с вашими потребностями.

private void btnSearch_Click(object sender, EventArgs e)
       {
           string url = "http://www.omdbapi.com/?t=" + txtMovieName.Text.Trim();
           using (WebClient wc = new WebClient())
           {
               var json = wc.DownloadString(url);
               JavaScriptSerializer oJS = new JavaScriptSerializer();
               ImdbEntity obj = new ImdbEntity();
               obj = oJS.Deserialize<ImdbEntity>(json);
               if (obj.Response == "True")
               {
                   txtActor.Text = obj.Actors;
                   txtDirector.Text = obj.Director;
                   txtYear.Text = obj.Year;

               }
               else
               {
                   MessageBox.Show("Movie not Found!!!");
               }


           }
       }


Примечание: Обратитесь к этой библиотеке dll (System.Web.Extensions.dll ) к вашему проекту
using System.Web.Script.Serialization;


Johny Flow

большое тебе спасибо, парень. вот чего я хочу. спасибо снова. только один вопрос : это просто сказать, что фильм не найден - я все сделал правильно!

Karthik_Mahalingam

ImdbEntity-это просто класс со свойствами, относящимися к JSON с сайта..

мы просто преобразования JSON-объекта к классу ImdbEntity, так что мы можем получить доступ к свойствам напрямую

Johny Flow

я не могу это исправить(я хочу показать вам свою программу и получить помощь) - у вас есть whatsapp, telegram или Yahoo messenger ?

Karthik_Mahalingam

опубликуйте весь свой код..

Johny Flow

http://s000.tinyupload.com/?file_id=14224732452825347315

я положил туда свой проект

Karthik_Mahalingam

файл класса должен содержать только это

использование системы;
публичный класс ImdbEntity
{
public string Title { get; set; }
public string Year { get; set; }
общественного строка номинальная { получить; набор; }
public string Released { get; set; }
общественные строку во время выполнения { получить; набор; }
public string Genre { get; set; }
директор Государственного строку { получить; набор; }
public string Writer { get; set; }
public string Actors { get; set; }
public string Plot { get; set; }
public string Language { get; set; }
public string Country { get; set; }
общественные награды строку { получить; набор; }
public string Poster { get; set; }
public string Meta {get; set; }
public string imdbRating { get; set; }
публичная строка imdbVotes { get; set; }
публичная строка imdbID { get; set; }
открытый строковый тип { get; set; }
public string Response { get; set; }
}

Karthik_Mahalingam

крутой :)

если это связано с этим постом, вы должны задать его, иначе вам придется задать новый вопрос.

Karthik_Mahalingam

ха-ха
codeproject так не работает,
в Codeprject есть много активных пользователей, и если ваш вопрос и содержание очень ясны, вы получите быстрый ответ от любого..

Johny Flow

хорошо, только один последний вопрос - как я могу получить плакат ? ( точно так же, как текстовые поля, но на этот раз я хочу получить картинку)

Karthik_Mahalingam

предоставьте дополнительную информацию..

Johny Flow

Хорошо - я добавил графическое поле в свою форму, и я хочу получить фотографии фильма, когда я ищу название - например: когда я ищу Железного Человека, мою программу, заполните текстовое поле "год" или любые другие текстовые поля, теперь я хочу показать мне фотографию Железного человека или любые другие фильмы, которые я ищу. этот код предназначен для textbox : txtAwards.Текст = obj.Награды; - мне нужен такой код для коробки с картинками

Karthik_Mahalingam

попробовать это

pictureBox1. ImageLocation = obj.Плакат;

Johny Flow

да, это тоже работает. поблагодарить у так много. пока

Karthik_Mahalingam

используйте так, чтобы каждый раз, когда он будет очищать текстовое поле и поле изображения, если фильм отсутствует, и он все равно будет показывать старые данные, которые будут нечетными для отображения этой информации..

если (объект.Ответ == "Правда")
{
txtActor.Текст = obj.Актеры;
txtDirector.Текст = obj.Директор;
txtYear.Текст = obj.Год;
pictureBox1. ImageLocation = obj.Плакат;

}
ещё
{
txtActor.Текст = "";
txtDirector.Текст = "";
txtYear.Текст = "";
имя picturebox1.ImageLocation = "";

Ящик для сообщений.Шоу ("фильм не найден!!!");
}

Johny Flow

хорошо спасибо

Member 13205054

Ответ гениальный и работает!
Я пытаюсь показать таблицу с опцией поиска (omdbapi.com/?s=). Все, что я делал до сих пор, было безуспешным :-(

Есть идеи?

Спасибо!

Karthik_Mahalingam

с какой проблемой вы столкнулись?

Member 13205054

Понять это. Вот код для возврата таблицы, заполненной результатами поиска.

строки URL = "http://www.omdbapi.com/?s=" + txtMovieName.Текст.Отделка() + "&амп;значение apiKey=ХХХХ";

использование (WebClient wc = новый WebClient())
{
string json = wc. DownloadString(url);
JavaScriptSerializer oJS = новый JavaScriptSerializer();

ImdbEntity_Array movies2 = oJS.Десериализация< imdbentity_array> (json);

фильмы Варе = ОАО.Сериализовать(movies2);

foreach (var mov in movies2. Search)
{
TableRow row = новый TableRow();
TableCell cell1 = новая TableCell();
TableCell cell2 = новая TableCell();
TableCell cell3 = новая TableCell();
TableCell cell4 = новая TableCell();
TableCell cell5 = новая TableCell();
TableCell cell6 = новая TableCell();
cell1.Text = " Плакат";
cell2.Текст = mov.Заглавие;
cell2.Шрифт.Размер = 15;
cell3.Текст = mov.Год;
cell4.Текст = мова.imdbRating;
cell5.Текст = мова.imdbID;
cell6.Text = " Кнопка";
ряд.Ячейки.Добавить(ячейка1);
ряд.Ячейки.Добавить (ячейка2);
ряд.Ячейки.Добавить (ячейка 3);
ряд.Ячейки.Добавить (ячейка 4);
ряд.Ячейки.Добавить(ячейка 5);
ряд.Ячейки.Добавить (ячейка 6);

Image img = новое изображение();
НВФ.Ширина = 70;
НВФ.Url_изображения = мова.Плакат;

таблица mytable.Строк.Добавить(строка);
таблица MyTable.Строк[таблица mytable.Строк.Счет - 1].Ячейки[0].Контроля.Добавить (img);
}
}

код ASP:
&ЛТ;АСП:таблица ID="моя_таблица" атрибут runat="сервер" ширина="100%" высота="48px"&ГТ;
<asp:tablerow>
<asp:tablecell>
< asp:tablecell & gt;Title
< asp:tablecell> год
< asp:tablecell & gt;Рейтинг IMDB
< asp:tablecell> IMDb ID
&ЛТ;АСП:tablecell В и GT;добавить&ЛТ;как ASP:HiddenField идентификатор="btnAdd" атрибут runat="сервер" /&ГТ;

Karthik_Mahalingam

хороший