2

いくつかの単語が定義されているかどうかを知るために、ウィクショナリーの API を使用しようとしています。私はオープン ソースのWiktionaryNETを見たことがありますが、彼らは次のコードを使用しています。

私のコンソールコードでは:

var word = Wiktionary.Define("clean");
foreach (var def in word.Definition)
     Console.WriteLine(def);

app.config で:

<system.net>
   <defaultProxy useDefaultCredentials="true" />
 </system.net>

私は同じものを使用していますが、結果は常に "Definition.Count = 0" です。

よろしくお願いします。

4

1 に答える 1

1

私はこのライブラリの実装者です。ご指摘ありがとうございます。何が起こったのか、今すぐ修正する必要がある場合に何ができるかを説明しようと思います。

ウィクショナリーの応答は JSON 形式ですが、解析するのはひどいものです。実際には、テキストの 1 つの吹き出しです。wiktionaryNET が実装されてから、wiktionary からの JSON 応答が変更されました。追加のフィールドが含まれるようになりました。wiktionaryNET パーサーは、これを最初に解析するはずだったコンテンツとして誤って解釈します。結果は、ライブラリからの空の応答です。

プロジェクトはGitHubからダウンロードできます。次に、WiktionaryJsonQuery.csAddQueryに移動し、ステートメントを変更して以下を含めrawcontinueます。

AddQuery("format=json");
AddQuery("rawcontinue");  // <-- add this line
AddQuery("action=query");
AddQuery("prop=revisions");
AddQuery("rvprop=content");
AddQuery("titles=" + word);

プロジェクトをビルドし、結果をプロジェクトに追加dllします。

これはベータ版のみであることに注意してください。

于 2014-12-10T08:00:43.743 に答える