对于我的计算机科学课,我们要创建一个程序,让用户输入一个单词,我们接受该单词并猜测它是否拼写正确。我们将这个词输入dictionary.com并从他们那里阅读。
我们将他们输入的单词添加到dictionary.com网址,然后我们检查该单词是否显示在网站上。如果它确实拼写正确,然后如果不是它拼写不正确。以下是阅读网址的代码:
URL url = new URL("http://www.dictionary.com/search?q=" + word);
// open a buffered reader on the url
InputStream inStr = url.openStream();
BufferedReader reader =
new BufferedReader(new InputStreamReader(inStr));
当他们拼写正确的单词时,一切都很好但是当他们拼写错误时它会抛出一个未找到异常的文件。这是因为如果你在dictionary.com上搜索一个单词就会改变链接。通常在哪里" www.dictionary.com/search?q = word"它更改为" http://www.dictionary.com/misspelling?term=wrod&s=t"
因为它更改了链接,它会抛出异常并且程序不起作用。有人对我应该做什么或改变有任何建议吗?谢谢!
答案 0 :(得分:0)
我同意高度评价你应该捕获异常的评论,但我建议你使用HttpURLConnection
类用给定的单词对dictionary.com进行GET调用。如果您按照下面的模式,仍然可以捕获来自该站点的任何错误流。并且您应该能够解析响应并检查以确保它实际上来自错误的单词。某些其他原因可能会发生异常,您不应将其视为未找到的单词。
String url = "http://www.dictionary.com/search?q=" + word";
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
// check the response code if you wish
InputStream inputStream = null;
try {
inputStream = con.getInputStream();
}
catch (IOException exception) {
inputStream = con.getErrorStream();
}
BufferedReader in = new BufferedReader(new InputStreamReader(inputStream));
<强>更新强>
我刚尝试输入无法找到的单词,HTTP响应代码为404
。因此,您可以只检查404
的响应代码,或者更彻底,甚至可以解析错误流。