2016-10-29 65 views
1

我是Java和Android Studio的初学者。我已经编写了Android Studio和Wamp作为服务器和Genymotion作为模拟器的代码。所有代码工作正常,我可以通过使用我的.php文件与mysql交互java.io.FileNotFoundException:使用真实服务器时

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

,但我得到这个错误: java.io.FileNotFoundException:http://burj.1shahrvand.com/Burj/BikerLogin.php

文件是否可用check it here但我得到该文件未找到

的代码是这样的例外:

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; 

我很感谢您的帮助!

回答

1

如果您在服务器使用404或410状态码进行响应后致电getInputStream,您将得到FileNotFoundException

如果您想避免该异常,请检查响应状态代码是否为2xx代码。如果不是,则使用getErrorStream而不是getInputStream

+0

的问题是文件是否可用 - 当我用资源管理器或检查铬没有问题 - 当我从我的应用程序请求时,我不可用。 –

+0

检查服务器端日志 –

+0

我得到403错误。我给管理员写了一张票。我会在这里公布答案。 –

0

在我的情况下,我的Cpanel中有一个选项。这是MOD安全,只需关闭它,15分钟后我的应用程序正常工作。

+0

你可能想问问你自己为什么在第一位。因为通过禁用它你可能已经关闭了其他的安全。 – Kiskae

0

只要你需要添加端口名称(:8080),在URL字符串本地主机IP地址,像我一样:

String login_url = " http://192.168.0.136:8080/login.php ";

+0

这听起来在许多层面上都是错误的。你为什么要连接到**本地**主机IP地址?端口号通常默认为8080--但这是一个配置方面。我认为你的“答案”有很多盲目的猜测。 – GhostCat

相关问题