java.io.FileNotFoundException:使用real server时
我是Java和Android Studio的初学者。我已经编写了一个由Android Studio编写的代码,Wamp作为服务器,Genymotion作为模拟器。所有代码都工作正常,我可以使用.php文件与mysql交互 然后我决定将代码传输到真正的服务器 但我得到了这个错误: java.io.FileNotFoundException: 该文件可用,但我发现该文件未找到 代码如下所示:java.io.FileNotFoundException:使用real server时,java,android,exception,Java,Android,Exception,我是Java和Android Studio的初学者。我已经编写了一个由Android Studio编写的代码,Wamp作为服务器,Genymotion作为模拟器。所有代码都工作正常,我可以使用.php文件与mysql交互 然后我决定将代码传输到真正的服务器 但我得到了这个错误: java.io.FileNotFoundException: 该文件可用,但我发现该文件未找到 代码如下所示: String uri = rp.getUri(); if(rp.getMethod().equals
String uri = rp.getUri();
if(rp.getMethod().equals("GET")){
uri += "?" + rp.getEncodedParams();
}
HttpURLConnection connection;
try {
URL url = new URL(uri);
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod(rp.getMethod());
if (rp.getMethod().equals("POST")){
connection.setDoOutput(true);
connection.setDoInput(true);
OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
writer.write(rp.getEncodedParams());
writer.flush();
}
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
StringBuilder sb = new StringBuilder();
while ((line = reader.readLine()) != null) {
sb.append(line);
}
return sb.toString();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
Log.i("HESAM Original", e.getMessage());
e.printStackTrace();
}
return null;
我感谢你的帮助 如果在服务器响应404或410状态代码后调用
getInputStream
,您将得到一个FileNotFoundException
如果要避免异常,请检查响应状态代码是否为2xx代码。如果没有,则使用
getErrorStream
而不是getInputStream
,在我的情况下,我的Cpanel中有一个选项。这是MOD Security,只需在15分钟后将其关闭,我的应用程序即可正常工作。只需添加端口名(:8080)和URL字符串中的本地主机ip地址,就像我所做的那样:
字符串login_url=“”
问题是文件可用-当我用浏览器或chrome检查时没有问题-当我从我的应用程序请求它时,我不可用。我得到403错误。我给管理员写了张罚单。我将在这里发布答案。403错误将导致不同的异常。它实际上意味着“禁止”。通常情况下,这意味着要么禁止所有人,要么禁止你授权的人/事。亲爱的@Stephen,正如你所说,我检查了服务器端日志,结果是403。然后我转向国防部安全部。现在一切正常。谢谢你的帮助。你可能想问问自己,为什么它一开始是开着的。因为禁用它可能会关闭其他东西的安全性。这听起来在很多方面都是错误的。为什么要连接到本地主机IP地址?端口号通常默认为8080,但这是一个配置方面。我认为你的“答案”中有很多盲目的猜测。