API WiktionaryNET

时间:2014-12-09 12:03:40

标签: c# wiktionary

我正在尝试使用维基词典的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” 有人知道,我如何使用或设置获得结果?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我是这个图书馆的实施者。感谢您指出了这一点。我会尝试解释发生了什么,如果你现在真的需要这个,你可以做些什么。

wiktionary响应采用JSON格式,但解析起来很糟糕。它实际上是一个单一的文本俱乐部。发生的事情是,自从wiktionaryNET实施以来,维基词典的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添加到项目中。

请注意,这只是测试版。