我的代码有问题
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”
你错过了/
尝试使用“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();
}
}
我意识到问题是什么。这个错误意味着我调用的方法是用throws
声明的,因为必须用try{}catch(){}
或添加相同的throws
来处理
确保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只编码包含空格的部分
你错过了网址中的/。应该是http://