在Android中使用字符串声明URL时出现malformedURLException

时间:2015-05-10 18:38:31

标签: android

根据Android参考,您可以使用字符串声明URL。

这意味着下一个代码应该是正确的(即):

 URL url = new URL("http://www.android.com/");

当我尝试使用它时,我得到:

  

“java.net.MalformedURLException”

在AndroidStudio 1.2.1.1

上发生了这种情况

我试图使用的完整代码来自Android的HttpURLConnect的引用:

 URL url = new URL("http://www.android.com/");
   HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
   try {
     InputStream in = new BufferedInputStream(urlConnection.getInputStream());
     readStream(in);
    finally {
     urlConnection.disconnect();
   }
 }

2 个答案:

答案 0 :(得分:2)

看看这个:

Java Malformed URL Exception

答案是: 这并没有引起错误,它抱怨你没有处理它可能的可能性,即使它不会,因为在这种情况下URL没有错误。 Java似乎认为这是一个好主意。 (事实并非如此。)

要将其关闭,请添加抛出MalformedURLException或将IOException抛出到方法声明中。 E.g:

public void myMethod() throws IOException {
    URL url = new URL("https://wikipedia.org/");
}

答案 1 :(得分:2)

这在这里工作得很好

try {

    URL url = new URL("http://www.android.com/");
    HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

    BufferedReader br = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
    String line;
    while ((line = br.readLine()) != null) {
        System.out.println(line);
    }

    urlConnection.disconnect();

} catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}