繁体   English   中英

Android:使用php和json将Android应用与数据库连接时出错

[英]Android: Error connecting Android app with Database using php and json

我的Android应用程序需要发送一个字符串,并基于此字符串,需要从数据库获取响应。 我有一个php,它从应用程序接收字符串,查询数据库,并使用echo json_encode($response_array);返回echo json_encode($response_array); 在浏览器上可以正常工作,并以json对象格式回显。

但是,在应用程序中,我正在使用Volley。 上面的php数组$ response_array发送多个字符串,这些字符串需要在应用程序textview中显示。

我已经在gradle依赖项中设置了凌空。

但是,从我的手机(连接到我的笔记本电脑热点)运行该应用程序时,出现的错误为“ null”。 这是来自应用程序的示例代码。

    TextView o,t;
private RequestQueue requestQueue;
private static final String URL = "http://172.25.33.189/fadapp/mirror.php";
private StringRequest request;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    o=(TextView)findViewById(R.id.tryOne);
    t=(TextView)findViewById(R.id.tryTwo);

    requestQueue = Volley.newRequestQueue(this);
    request = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            try {
                JSONObject jsonobject = new JSONObject(response);
                if (jsonobject.names().get(0).equals("name")) {
                    o.setText(jsonobject.getString("name"));
                    if(jsonobject.getString("stat").equals("1")) {
                        t.setText(R.string.inText);
                        t.setTextColor(Color.parseColor("#00FF00"));
                    } else {
                        t.setText(R.string.outText);
                        t.setTextColor(Color.parseColor("#FF0000"));
                    }
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Toast.makeText(MainActivity.this, ""+error.getMessage(), Toast.LENGTH_SHORT).show();;
        }
    }) {
        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            HashMap<String, String> hashMap = new HashMap<String, String>();
            hashMap.put("speid", "database query string here");
            return hashMap;
        }
    };
    requestQueue.add(request);

您是否通过以下方式授予了Internet访问应用程序的权限

如果您是从笔记本电脑托管的,则可能需要打开端口80,以确保问题不是您的Volley设置尝试查询例如google并打印应为200 http代码的响应

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM