Question

I want to get the most current questions from Stack Overflow using the Stacky C# library for the Stack Exchange API.

I took the example code and tried to run it but it hangs when it comes to returning data from the Stack Exchange website.

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

What am I doing wrong?

I also saw that I can register my application to get an API Key. But that is not necessary to make it run in the first place, is it?

Edit

If I remove the lines

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

it works and returns all questions. Also if I add the line

o.Max = 50;

instead, then it does not work either.

Edit 2

Now it works - rebooted my computer.
BTW I used that code in the end

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);

And

o.Max

expects an Unix Epoch time, not a number of maximum posts.

Was it helpful?

Solution

Try changing the version specified in the StackyClient constructor from "0.9" to "1.1". I get a JSON parse error on the client.GetQuestions(o) line when the version is "0.9", but it runs fine with "1.1".

OTHER TIPS

Using the latest Stacky code from bitbucket there is no longer a QuestionOptions parameter to GetQuestions. Also using version 0.9 of the API causes Stacky to crash, but according to this version 1.x is deprecated, so maybe 0.9 is removed?

  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);
  }

Or, just remove the date and see if you get any results.

  IPagedList<Question> l = client.GetQuestions(sort, sortDir, page, pageSize);//, fromDate, toDate);
  foreach (var question in l)
  {
    Console.WriteLine(question.Title);
  }
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top