android应用程序加载也很慢

llmtgqce  于 2021-07-03  发布在  Java
关注(0)|答案(0)|浏览(164)

我有两个android应用程序,我发现有时我的两个android应用程序都需要更长的时间才能从api得到简单的响应,即使网速大约是40mbps。例如,在对我的api的100个请求中,有70个请求可以处理,但剩下的30个请求有时需要很长时间才能响应,即使该请求很容易检查电子邮件是否已注册。我想这只发生在一个特定的移动网络上,因为我有两个isp,我发现只有一个有问题。我也尝试过apachehttpclient和volley,但在这两个方面都遇到了问题。
下面是我向api发出请求的java代码-

private void checkEmail() {

       JSONObject parameters = new JSONObject();
       try {
        parameters.put("email", editTextEmail.getText().toString());
       } catch (JSONException e) {
         e.printStackTrace();
       }

       SendServerRequest(this, URL, parameters, new Callback() {
         @Override
          public void Response(String resp) {
            getResponse(resp);
          }
        });
       }

      private void getResponse(String response) {
       try {
        JSONObject jsonObject = new JSONObject(response);
        String error = jsonObject.optString("error");
        if (error.equals("false")) {
              //do some stuff
        }
        else {
            //some other stuff
        }
       } catch (Exception e) {
          e.printStackTrace();
      }
     }

     public static void SendServerRequest (final Context context, String url, JSONObject jsonObject,
                                      final Callback callback){

        JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST,
            url, jsonObject,
            new Response.Listener<JSONObject>() {

                @Override
                public void onResponse(JSONObject response) {
                    if(callback!=null)
                        callback .Response(response.toString());
                }
            }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {
            if(callback!=null)
                callback .Response(error.toString());
            }
        });

       RequestQueue requestQueue = Volley.newRequestQueue(context);
        jsonObjReq.setRetryPolicy(new DefaultRetryPolicy(30000,
            DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
            DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
          requestQueue.add(jsonObjReq);
     }

这是我的api

if(isset($_GET['checkEmail'])){

        //getting values 
        $input = @file_get_contents("php://input");
        $event_json = json_decode($input,true);
        $email = $event_json['email'];

        if($email!=""){
        $stmt = $mysqli_users->prepare("SELECT id FROM tbl_users WHERE email = ?");
        $stmt->bind_param("s",$email);
        $stmt->execute();
        $stmt->store_result();
        if($stmt->num_rows > 0){

            $stmt->bind_result($id, $name);
            $stmt->fetch();
            $response['error'] = false; 
            $response['message'] = 'Valid email';

            }

        else{ 
            $response['error'] = true; 
            $response['message'] = 'Email not registered';
           }

        }

        else{
            $response['error'] = true; 
            $response['message'] = 'Parameters are missing';
           }

         echo json_encode($response);

 }

有谁能告诉我出了什么事,这个问题完全困扰了我。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题