【问题标题】:How to resolve java.net.MalformedURLException?如何解决 java.net.MalformedURLException?
【发布时间】:2012-03-13 14:27:45
【问题描述】:

我收到此错误:

java.net.MalformedURLException: Protocol not found[java.lang.StringBuilder] 

当下面一行被执行时:

url = new URL(urlString.toString());

urlString 存储以下值:

http://maps.google.com/maps?f=d&hl=en&saddr=25.04202,121.534761&daddr=25.05202,121.554761&ie=UTF8&0&om=0&output=kml

是什么导致了这个异常?

【问题讨论】:

  • 尝试记录 urlString.toString() 值,因为解析器抱怨它以值“java.lang.StringBuilder”开头

标签: android malformedurlexception


【解决方案1】:

这是一个异常处理的例子......

String urlString = "https://www.example.com/";
URL url = null;

// handle Exception
try {
    url = new URL(urlString);
} catch (MalformedURLException e) {
    System.out.println("The URL is not valid.");
    System.out.println(e.getMessage());
}

// print
if (url != null) {
    System.out.println(url.toString());
}

【讨论】:

    【解决方案2】:

    用放置在服务器 instedof html 上的 php 文件地址替换 url

    【讨论】:

      【解决方案3】:

      如果您的网络防火墙阻止该 URL,您也可以得到此例外。

      【讨论】:

        【解决方案4】:

        可能是你换了之后没有清理

        url = new URL( urlString );
        

        url = new URL(urlString.toString());
        

        您应该记录传递给 URL 构造函数的参数值。 这不是你想的那样。

        urlString 将以 java.lang.StringBuilder@ 的形式打印一个值 因此,如果您尝试从中构建 url,则会引发异常。

        但是使用to String会打印出stringbuilder构建的内容字符串的值。

        【讨论】:

        • 是的,当我打印它时显示 url=[Ljava.lang.StringBuilder;@412b0fb0,但是当我在调试时检查它的值时,它会显示正确的 URL。将参数的值记录到 URL 的构造函数中是什么意思?我还应该做什么?
        • 我的意思是将参数passed的值记录到URL的构造函数中。你清理了项目。当然,问题来自这里。
        • 非常感谢 Snicolas。我找到了问题所在。我正在使用 AsyncTask 并且没有正确传递参数。现在解决了:)
        猜你喜欢
        • 2014-05-24
        • 1970-01-01
        • 2022-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-26
        • 2018-06-01
        相关资源
        最近更新 更多