java.io.FileNotFoundException:使用real server时

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

我是Java和Android Studio的初学者。我已经编写了一个由Android Studio编写的代码,Wamp作为服务器,Genymotion作为模拟器。所有代码都工作正常,我可以使用.php文件与mysql交互

然后我决定将代码传输到真正的服务器

但我得到了这个错误: java.io.FileNotFoundException:

该文件可用,但我发现该文件未找到

代码如下所示:

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,但这是一个配置方面。我认为你的“答案”中有很多盲目的猜测。