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 格式,但解析起来很糟糕。它实际上是一个单一的文本。发生的事情是,自从实施了 wiktionaryNET 以来,来自 wiktionary 的 JSON 响应被修改了。它现在包含一个附加字段。wiktionaryNET 解析器错误地将其解释为它应该首先解析的内容。结果是来自库的空响应。

您可以从GitHub下载该项目。然后转到WiktionaryJsonQuery.cs并修改AddQuery语句以包括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 回答