在java代码中运行时,可从浏览器访问的URL提供404响应代码。
有什么问题? ..任何人都可以解释一下这个
public String login(String url) {
URL targetURL;
long start = 0;
long end = 0;
float difference = 0;
HttpURLConnection httpURLConnection;
StringBuffer strbufstatus = new StringBuffer();
try {
//Connecting to the url
targetURL = new URL(url);
start = System.currentTimeMillis();
httpURLConnection = (HttpURLConnection) targetURL.openConnection();
httpURLConnection.setUseCaches(false);
httpURLConnection.setAllowUserInteraction(false);
httpURLConnection.setDoInput(true);
httpURLConnection.setRequestMethod("GET");
httpURLConnection.connect();
//Getting the respond Code
int responseCode = httpURLConnection.getResponseCode();
strbufstatus.append("Response Code===> " + responseCode + "<br>");
if(responseCode==200){
// System.out.println("respondcode===> " + responseCode);
end = System.currentTimeMillis();
//Calculating the response time
difference = (end - start);
difference = difference / 1000;
// System.out.println("Response Time===> " + difference);
strbufstatus.append("Rsponse time===> " + difference + "<br>");
}
} catch (IOException ex) {
if (ex.toString().contains("java.net.UnknownHostException:")) {
strbufstatus.append(" - UnknownHostException has occured during Httpconnection\n");
} else if (ex.toString().contains("java.net.MalformedURLException: unknown protocol:")) {
strbufstatus.append(" - Unknown Protocol\n");
} else if (ex.toString().contains("java.net.ConnectException: Connection timed out: connect")) {
strbufstatus.append("Connection TimedOut\n");
} else {
strbufstatus.append("IOException has occured during Httpconnection \n");
}
ex.printStackTrace();
}
System.out.println("Status" +strbufstatus);
return strbufstatus.toString();
}
答案 0 :(得分:5)
以下可能是问题:
答案 1 :(得分:1)
来自维基百科的错误代码404:
404或Not Found错误消息是HTTP标准响应代码,表示客户端能够与服务器通信,但服务器无法找到所请求的内容。
应该有一个人类可读的“原因短语”,解释尚未找到的。您只是阅读响应代码 - 另外阅读和打印:
String responseMessage = httpUrlConnection.responseMessage();
答案 2 :(得分:0)
一种可能性是URL包含一些在URL中无效的字符,例如空格或ASCII范围之外的某些字符。这需要以某种方式转换为URL,例如%HH转义序列。当您输入地址时,浏览器会自动执行此操作,但它们并非都以相同的方式执行此操作。例如,有些人使用现在推荐的转换为UTF-8序列的惯例,但有些人使用ISO-8859-1。有些将空间转换为+,有些转换为%20。如果您希望程序以与浏览器相同的方式处理URL,则必须在Java代码中进行正确的编码。