在远程服务器上连接Android App和数据库

时间:2016-03-08 06:55:51

标签: php android database cloud

我正在尝试访问远程服务器上的数据库。数据库很好,因为它与PHP代码工作正常,但当我尝试使用Android应用程序在该数据库中添加数据时,数据不会插入数据库中。 我基本上都遵循了以下教程

https://www.youtube.com/watch?v=WgOSIEWOXbQ

app中有以下两项活动

  1. 主要活动(启动器活动)
    包含按钮“添加联系人”,单击该按钮,“添加信息”活动将打开。
  2. Add Info Activity
    包含3个编辑文本和一个按钮'保存数据',单击“saveInfo”方法调用。
  3. 公共类AddInfo扩展了Activity {

            2016-02-06,21:30:00  
     2016-02-06,21:30:00  
    
    2016-02-06,00:00:00,ujjawal,36072-2,MT,37,0,1  
            2016-02-06,21:30:00  
     2016-02-06,21:30:00  
    
    2016-02-06,00:10:00,ujjawal,36072-2,MT,37,0,1  
            2016-02-06,21:30:00  
     2016-02-06,21:30:00  
    
    2016-02-06,00:20:00,ujjawal,36072-2,MT,37,0,1  
            2016-02-06,21:30:00  
     2016-02-06,21:30:00  
    
    2016-02-06,00:40:00,ujjawal,36072-2,MT,37,0,1  
            2016-02-06,21:30:00  
     2016-02-06,21:30:00  
    
    2016-02-06,00:50:00,ujjawal,36072-2,MT,42,0,2  
            2016-02-06,21:30:00  
    

    }

2 个答案:

答案 0 :(得分:0)

可能存在POST问题。 你可以使用Volley Library。

加入gradle

dependencies {
    compile 'com.mcxiaoke.volley:library:1.0.19'
}

为帖子添加JAVA代码。

    RequestQueue queue = Volley.newRequestQueue(this);

    StringRequest request = new StringRequest(Request.Method.POST, "Your URL",
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    // Do something
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    progressDialog.dismiss();
                    onLoginFailed();
                }
            }){
            @Override
            protected Map<String,String> getParams(){
                Map<String,String> params = new HashMap<String, String>();
                // Add your Params Here.
                //params.put("email", email);
                //params.put("password",password);

                return params;
            }
    };

    queue.add(request);

答案 1 :(得分:0)

我已经看过你提到过的视频,并且考虑到这个假设它可以在服务器端使用PHP代码,我最好的猜测是客户端应用程序无法进行必要的通信。因此,要么根本没有发生通信,要么没有正确发送参数。如果存在任何类型的请求以确保至少成功地进行通信,则应该更容易在数据库中转储虚拟数据。但更坚实的方法是检查客户端的网络流量。

现在,为此,有几种解决方案可以调试您的应用程序并检查http流量。最新的一个是Stetho,这是一个由Facebook开发的开源调试平台,为Android开发人员提供丰富且高度交互的调试体验。但它需要您在客户端进行一些必要的更改,如果您感兴趣,tutorial可以帮助您。

否则,如果您想节省时间和精力,我建议您使用CharlesProxy工具和此tutorial,这些基本config steps应该非常有用。 Charles基本上是一个Web代理(HTTP代理/ HTTP监视器),您将在计算机上安装它,它将能够记录并显示所有发送和接收的数据。它基本上使您可以轻松地在Web浏览器/客户端和服务器之间查看请求,响应和HTTP标头(包含Cookie和缓存信息)。它最终可以帮助您跟踪问题并修复它。

希望它有所帮助!