如何解决安卓应用的服务器响应问题

Posted

技术标签:

【中文标题】如何解决安卓应用的服务器响应问题【英文标题】:How to solve server response issue for android apps 【发布时间】:2018-05-01 15:37:40 【问题描述】:

当我将 android 应用程序重定向到我的本地 xampp 服务器时,我得到了来自服务器的预期输出。如下所示

问题是当我将我的应用程序重定向到真实 IP 或出现域服务器问题时。这是我的代码。

 protected String doInBackground(String[] paramparameterForURL) 

        try
            //serv_url="http://www.eurekabd.com";//shakil/"+paramparameterForURL[0];
            URL url = new URL("http://www.eurekabd.com/shakil/home.php"/*serv_url*/);
            //URL url = new URL("http://192.168.0.109/shakil/shakil.php"/*serv_url*/);
            //URL url = new URL("http://144.48.2.11/shakil/shakil.php"/*serv_url*/);
            JSONObject postDataParams = new JSONObject();

            postDataParams.put("name", "abhay");
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setReadTimeout(300 /* milliseconds */);
            conn.setConnectTimeout(300 /* milliseconds */);
            //conn.setRequestMethod("GET");
            conn.setDoInput(true);
            conn.setDoOutput(true);

            OutputStream os = conn.getOutputStream();
            BufferedWriter writer = new BufferedWriter(
                    new OutputStreamWriter(os, "UTF-8"));
            writer.write(getPostDataString(postDataParams));
            writer.flush();
            writer.close();
            os.close();

            int responseCode=conn.getResponseCode();
            if (responseCode == HttpsURLConnection.HTTP_OK) 
                BufferedReader in=new BufferedReader(new InputStreamReader(conn.getInputStream()));
                StringBuffer sb = new StringBuffer("");
                String line="";

                while((line = in.readLine()) != null) 
                    sb.append(line);

                    break;
                
                in.close();
                return sb.toString();
            
            else 
                return new String("false : "+responseCode);
            
        
        catch(Exception e)
            return new String("Exception: " + e.getMessage());
        
    

问题是

1.Server WWW.eurecabd.com 返回异常 NULL,如下所示

2.real ip 服务器返回空,如下所示

如何解决问题或问题是什么?是编码还是网络协议?

【问题讨论】:

【参考方案1】:

问题是不同服务器的响应,你也应该修改这个:

conn.setConnectTimeout(300 /* milliseconds */);

300 毫秒对于连接超时来说太短了,请记住以毫秒为单位。

【讨论】:

我之前测试过我的应用程序。经过所有计算,我将时间限制为 300 毫秒。尽管服务器在 255 毫秒内响应。兄弟我还有什么可以做的吗? 在您的网络浏览器中检查服务器响应 如果服务器响应是这样的有什么问题。Array ( [0] => 1235 [1] => 1238 ) 2

以上是关于如何解决安卓应用的服务器响应问题的主要内容,如果未能解决你的问题,请参考以下文章

安卓社交网络应用

如何使用mockito在安卓系统中创建模拟api响应[关闭]。

用户无法在 Play 商店同时安装安卓应用。如何解决这个问题?

安卓APP个人开发者如何解决服务端问题

如何解决“此广告系列针对 0 个应用用户(0% 的潜在用户)”。 (火力基地)(安卓)

如何从浏览器打开安卓应用程序