我正在尝试使用维基词典的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” 有人知道,我如何使用或设置获得结果?
提前感谢您的帮助。
答案 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
添加到项目中。
请注意,这只是测试版。