正在使用Wordnik API请求定义
本文关键字:API 请求 定义 Wordnik | 更新日期: 2023-09-27 18:27:03
我只在极少量的意义上使用过API,所以一段时间以来我一直想尝试如何做到这一点。好的,这就是我目前所拥有的,它是有效的,但它返回了定义的所有内容。所以我有几个问题:
- 有没有一种方法可以只要求定义而不要求其他任何东西
- 我只是分析数据吗?我在Wordnik API中看到了,我可以包含XML标记。。。那么我可以使用XMLReader来获取定义吗
- 现在,如果它是名词/动词等,那么同时请求两个定义如何
最终目标是创建一个我可以使用的定义列表。如有任何帮助,我们将不胜感激。到目前为止,这是我的代码:
class Program
{
static void Main(string[] args)
{
string apiKey = "***************";
string wordToSearch = "";
do
{
Console.Write("Please type a word to get the definition: ");
wordToSearch = Console.ReadLine();
if (!wordToSearch.Equals("q"))
{
string url = "http://api.wordnik.com/v4/word.json/" + wordToSearch + "/definitions?api_key=" + apiKey;
WebRequest request = WebRequest.Create(url);
request.Method = "GET";
request.ContentType = "application/json";
using (WebResponse response = request.GetResponse())
{
using (Stream stream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(stream);
string responseFromWordnik = reader.ReadToEnd();
Console.WriteLine(responseFromWordnik);
}
}
}
} while (!wordToSearch.Equals("q"));
}
}
谢谢,Justin
下面是一个获取单词定义的示例。您需要用自己的api密钥替换api密钥。
public class Word
{
public string word { get; set; }
public string sourceDictionary { get; set; }
public string partOfSpeech { get; set; }
public string text { get; set; }
}
public class WordList
{
public List<Word> wordList { get; set; }
}
string url = "http://api.wordnik.com:80/v4/word.json/" + word + "/definitions?limit=200&includeRelated=false&sourceDictionaries=all&useCanonical=false&includeTags=false&api_key=a2a73e7b926c924fad7001ca3111acd55af2ffabf50eb4ae5";
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
webRequest.Method = WebRequestMethods.Http.Get;
webRequest.Accept = "application/json";
webRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36";
webRequest.Referer = "http://developer.wordnik.com/docs.html";
webRequest.Headers.Add("Accept-Encoding", "gzip, deflate, sdch");
webRequest.Headers.Add("Accept-Language", "en-US,en;q=0.8");
webRequest.Host = "api.wordnik.com";
HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
string enc = webResponse.ContentEncoding;
using (Stream stream = webResponse.GetResponseStream())
{
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
String responseString = "{'"wordList'":" + reader.ReadToEnd() + "}";
if (responseString != null)
{
JavaScriptSerializer ser = new JavaScriptSerializer();
WordList words = ser.Deserialize<WordList>(responseString);
}
}
- API文档可能会告诉你这一点
- 是,解析数据。如果数据是XML形式的,那么您可以使用XMLReader对其进行解析,也可以将其加载到XMLDocument中。不过,看起来您在请求JSON。如果是这样,您将需要一个JSON解析器。查看Json.Net
- 再次查看API文档
他们的文档页面稀疏得令人怀疑。你可能会在他们的谷歌小组或他们支持页面上列出的其他来源上得到更好的回应。