Подтвердить что ты не робот

Получите вопросы о переполнении стека с помощью Stacky API

Я хочу получить самые актуальные вопросы из Qaru с помощью Stacky С# library для API-интерфейса стека.

Я взял пример кода и попытался запустить его, но он зависает, когда дело доходит до возвращения данных с веб-сайта Stack Exchange.

StackyClient client = new StackyClient("0.9", "", Sites.StackOverflow, 
            new UrlClient(), new JsonProtocol());

var o = new QuestionOptions();
o.FromDate = DateTime.Now.AddMinutes(-10.0);
o.ToDate = DateTime.Now;
o.IncludeAnswers = false;
o.IncludeBody = false;
o.IncludeComments = false;
o.SortBy = QuestionSort.Creation;
o.SortDirection = SortDirection.Descending;

IPagedList<Question> l = client.GetQuestions(o); <--- program hangs here 4ever

Что я делаю неправильно?

Я также видел, что могу зарегистрировать свое приложение, чтобы получить ключ API. Но это не обязательно, чтобы заставить его работать в первую очередь, не так ли?

Изменить

Если удалить строки

o.FromDate = DateTime.Now.AddMinutes(-10.0);
o.ToDate = DateTime.Now;

он работает и возвращает все вопросы. Также, если я добавлю строку

o.Max = 50;

то он тоже не работает.

Изменить 2

Теперь он работает - перезагрузился мой компьютер.
BTW Я использовал этот код в конце

var o = new QuestionOptions();
o.FromDate = DateTime.UtcNow.AddMinutes(-20);
o.IncludeAnswers = false;
o.IncludeBody = false;
o.IncludeComments = false;
o.SortBy = QuestionSort.Creation;
o.SortDirection = SortDirection.Descending;

IPagedList<Question> l = client.GetQuestions(o);

И

o.Max

ожидает время Unix Epoch, а не количество максимальных сообщений.

4b9b3361

Ответ 1

Попробуйте изменить версию, указанную в конструкторе StackyClient, от "0.9" до "1.1". Я получаю ошибку синтаксического анализа JSON в строке client.GetQuestions(o), когда версия "0.9", но она отлично работает с "1.1".

Ответ 2

Используя последний код Stacky из bitbucket, в GetQuestions больше нет параметра QuestionOptions. Кроме того, использование версии 0.9 API приводит к сбою Stacky, но в соответствии с этой версией версии 1.x устарела, поэтому возможно удаление 0.9?

  StackyClient client = new StackyClient("2.1", Sites.StackOverflow,
        new UrlClient(), new JsonProtocol());
  //var o = new QuestionOptions();
  //o.FromDate = DateTime.Now.AddMinutes(-10.0);
  //o.ToDate = DateTime.Now;
  //o.IncludeAnswers = false;
  //o.IncludeBody = false;
  //o.IncludeComments = false;
  //o.SortBy = QuestionSort.Creation;
  //o.SortDirection = SortDirection.Descending;
  QuestionSort sort = QuestionSort.Creation;
  SortDirection sortDir = SortDirection.Descending;
  int page = 1;
  int pageSize = 100;
  DateTime fromDate = DateTime.Now.AddMinutes(-10.0);
  DateTime toDate = DateTime.Now;
  IPagedList<Question> l = client.GetQuestions(sort, sortDir, page, pageSize, fromDate, toDate);
  foreach (var question in l)
  {
    Console.WriteLine(question.Title);
  }

Или просто удалите дату и посмотрите, есть ли у вас какие-либо результаты.

  IPagedList<Question> l = client.GetQuestions(sort, sortDir, page, pageSize);//, fromDate, toDate);
  foreach (var question in l)
  {
    Console.WriteLine(question.Title);
  }