10

Stacky C# ライブラリfor the Stack Exchange APIを使用して、Stack Overflowから最新の質問を取得したいと考えています。

サンプル コードを取得して実行しようとしましたが、Stack Exchange Web サイトからデータを返すときにハングします。

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 Keyを取得できることもわかりました。でも、そもそも走らせるのにそれは必要ないですよね?

編集

行を削除すると

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

それは機能し、すべての質問を返します。また、行を追加すると

o.Max = 50;

代わりに、それも機能しません。

編集 2

これで動作します -コンピューターを再起動しました。
ところで、私は最後にそのコードを使用しました

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 エポック時間を想定しています。

4

2 に答える 2

0

Bitbucket の最新のStackyコードを使用する と、 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);
  }
于 2013-05-03T23:47:41.443 に答える