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

问题描述 投票:0回答:4

我的代码有问题

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”

java parsing url exception
4个回答
-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();
    }

}

2
投票

我意识到问题是什么。这个错误意味着我调用的方法是用throws声明的,因为必须用try{}catch(){}或添加相同的throws来处理


0
投票

确保String code没有任何空格,如果你在附加之前编码它

发送以下网址时,我收到了类似的错误

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

URL url = new URL(unEncodedUrl);

上面的行已抛出错误,因为日期url查询值中有空格

所以你可以通过编码日期值来解决它

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

注意:不编码整个URL只编码包含空格的部分


-3
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.