Ответ 1
Попробуйте изменить версию, указанную в конструкторе StackyClient
, от "0.9" до "1.1". Я получаю ошибку синтаксического анализа JSON в строке client.GetQuestions(o)
, когда версия "0.9", но она отлично работает с "1.1".
Я хочу получить самые актуальные вопросы из 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;
то он тоже не работает.
Теперь он работает - перезагрузился мой компьютер.
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, а не количество максимальных сообщений.
Попробуйте изменить версию, указанную в конструкторе StackyClient
, от "0.9" до "1.1". Я получаю ошибку синтаксического анализа JSON в строке client.GetQuestions(o)
, когда версия "0.9", но она отлично работает с "1.1".
Используя последний код 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);
}