Android应用中未处理的异常java.net.MalformedURLException

时间:2014-02-25 01:09:00

标签: java parsing url exception

我的代码中存在问题

void getItembyID(String code){
    String site;
    site = "http:/www.sprii.net/db/getItem.php?pid="+code+"/";
    URL url = new URL(site);
}

在IntelliJ中写入时,我在第三行得到一个例外。问题出在URL url = new URL(site);我应该尝试/抓住它吗?为什么会这样?我尝试输入"http://www.google.com/"以查看它是否有效,但它仍然给我相同的异常

编辑:我意识到我的网站名称有错误。在http:。之后错过了//但是,在更改之后我仍然得到“java.net.MalformedURLException”

4 个答案:

答案 0 :(得分:2)

我意识到问题所在。 此错误意味着我正在调用的方法是throws声明的,因此必须使用try{}catch(){}处理或添加相同的throws

答案 1 :(得分:0)

确保String code没有任何空格,如果你在追加

之前编码它

发送以下网址时出现类似错误

  

String unEncodedUrl =   “https://yXXXXXXdh.execute-api.us-east-1.amazonaws.com/prod/helloWorld?date=29   2017年12月“;

     

网址url =新网址(unEncodedUrl);

上述行已抛出错误,因为日期网址查询值中有空格

所以你可以通过编码日期值

来解决它
  

String encodedUrl =   “https://yXXXXXXdh.execute-api.us-east-1.amazonaws.com/prod/helloWorld?date=” + URLEncoder.encode(finaldate, “UTF-8”);

注意:不对整个网址进行编码,只对包含空格的部分进行编码

答案 2 :(得分:-1)

你错过了/

尝试使用“http://www.sprii.net/db/getItem.php?pid=

也许您应该扩展此功能,以便在出现错误时可以看到更多错误,例如下面的代码。 (顺便说一下,这对我来说,但我不知道参数的任何有效“代码”值)

    public void getItembyID(String code) {
    String site;

    site = "http://www.sprii.net/db/getItem.php?pid=" + code + "/";

    try {
        URL url = new URL(site);
    } catch (MalformedURLException e) {
        System.out.println("Error: " + e.getMessage());
        e.printStackTrace();
    }

}

答案 3 :(得分:-3)

你错过了网址中的/。 应该是http://