Send post data to server using Volley android

后端 未结 5 1517
情话喂你
情话喂你 2021-02-10 04:08

I am trying to send some data to the server using the Volley library.

   private void registerUser(final String email, final String username,
                            


        
相关标签:
5条回答
  • 2021-02-10 04:24
     private void postUsingVolley() {
        String tag_json_obj = "json_obj_req";
    
        final ProgressDialog pDialog = new ProgressDialog(this);
        pDialog.setMessage("posting...");
        pDialog.show();
    
        final String mVendorId = DeviceDetails.getInstance(mContext).getVendor_id();
        String mUserId = UserModel.getInstance(mContext).getUser_id();
    
        final HashMap<String, String> postParams = new HashMap<String, String>();
        sendFeedbackParams.put("key1", value1);
        sendFeedbackParams.put("key2", value2);
        sendFeedbackParams.put("key3", value3);
    
        JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST,
                ApplicationData.POST_URL, new JSONObject(postParams),
                new com.android.volley.Response.Listener<JSONObject>() {
    
                    @Override
                    public void onResponse(JSONObject response) {
                        //Log.d("TAG", response.toString());
                        try {
                            //Toast.makeText(mContext, response.getString("message"), Toast.LENGTH_LONG).show();
                            Toast.makeText(mContext, "Thank you for your post", Toast.LENGTH_LONG).show();
    
                            if (response.getBoolean("status")) {
                                pDialog.dismiss();
                                finish();
                            }
                        } catch (JSONException e) {
                            Log.e("TAG", e.toString());
                        }
                        pDialog.dismiss();
                    }
                }, new com.android.volley.Response.ErrorListener() {
    
            @Override
            public void onErrorResponse(VolleyError error) {
                //VolleyLog.d("TAG", "Error: " + error.getMessage());
                pDialog.dismiss();
                if (isNetworkProblem(error)) {
                    Toast.makeText(mContext, "Internet Problem", Toast.LENGTH_SHORT).show();
    
                }
            }
        }) {
    
            @Override
            public String getBodyContentType() {
                return "application/json; charset=utf-8";
            }
    
            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                return getRequestHeaders();
            }
        };
    
        jsonObjReq.setRetryPolicy(new DefaultRetryPolicy(8000, 0, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
        // Adding request to request queue
        AppController.getInstance().addToRequestQueue(jsonObjReq, tag_json_obj);
    }
    

    Use Volley like this,... It is working for me.

    0 讨论(0)
  • 2021-02-10 04:43

    JSon post

    public void makePostUsingVolley() 
    {
      session = new SessionManager(getActivity().getApplicationContext());
      session.checkLogin();
      HashMap<String, String> user = session.getUserDetails();
    
      final String  token = user.get(SessionManager.KEY_NAME);
    
      //Toast.makeText(getActivity().getApplicationContext(),name, Toast.LENGTH_SHORT).show();
    
      final Map<String, String> params = new HashMap<String, String>();
      //params.put("Employees",name);
      String tag_json_obj = "json_obj_req";
      String url = "enter your url";
    
      final ProgressDialog pDialog = new ProgressDialog(getApplicationContext());
      pDialog.setMessage("Loading...");
      pDialog.show();
    
     StringRequest req = new StringRequest(Request.Method.GET,url,
              new Response.Listener<String>() {
                  // final JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.GET,
                  //"http://emservices.azurewebsites.net/Employee.asmx/CheckUserGet", new Response.Listener<JSONObject>() {
    
                  @Override
                  public void onResponse(String response) {
    
                      JSONObject json;
                         // Toast.makeText(getActivity().getApplicationContext(),"dfgghfhfgjhgjghjuhj", Toast.LENGTH_SHORT).show();
    
    
    
                        //Toast.makeText(getActivity().getApplicationContext(),obb.length(), Toast.LENGTH_SHORT).show();
    
    
    
                      // JSONObject data=obj.getJSONObject("Employee_Name");
                      ObjectOutput out = null;
                      try {
    
                          json = new JSONObject(response);
    
                      } catch (IOException e) {
                          e.printStackTrace();
                      } catch (JSONException e) {
                          e.printStackTrace();
                      }
    
    
    
    
                      pDialog.hide();
                      // Toast.makeText(getApplicationContext(),"hi", Toast.LENGTH_SHORT).show();
                      Log.d("", response);
    
    
                  }
              }, new Response.ErrorListener() {
    
          @Override
          public void onErrorResponse(VolleyError error) {
              VolleyLog.d("", "Error: " + error.getMessage());
              Toast.makeText(getActivity().getApplicationContext(),
                      error.getMessage(), Toast.LENGTH_SHORT).show();
              pDialog.hide();
              // hide the progress dialog
    
          }
      }) {
         @Override
           protected Map<String, String> getParams() {
         Map<String, String> params = new HashMap<String, String>();
         params.put("username",name);
         params.put("password",password);
    
         return params;
     }
    
      };
    
      // Adding request to request queue
      AppController.getInstance().addToRequestQueue(req, tag_json_obj);
    }
    
    0 讨论(0)
  • 2021-02-10 04:44

    First of all you are not sending json to your server. You are sending parametrized url with post method and getting json text as response.

    I think the problem is the response from the server which is supposedly json. But from your log, this text "---- YOUR DATA ----" which you get from Log.d(TAG, "Register Response: " + response.toString()); is not at all json formatted . So you need to modify your server to respond in correct json format.

    0 讨论(0)
  • 2021-02-10 04:48
    requestQueue= Volley.newRequestQueue(MainActivity.this);
    StringRequest request=new StringRequest(Request.Method.PUT, url, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            Toast.makeText(MainActivity.this, ""+response, Toast.LENGTH_SHORT).show();
            Log.d("response",response);
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
    
        }
    }){
        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            JSONObject jsonObject = new JSONObject();
            try {
                jsonObject.put("name", name.getText().toString().trim());
                jsonObject.put("email", email.getText().toString().trim());
                jsonObject.put("phone", phone.getText().toString().trim());
            } catch (JSONException e) {
                e.printStackTrace();
            }
    
            Map<String, String> params = new HashMap<String, String>();
            params.put("message", jsonObject.toString());
    
            return params;
        }
        };
    requestQueue.add(request);
    

    [["deep","dee@gmail.com","8888999999"]]

    0 讨论(0)
  • 2021-02-10 04:50

    This is the solution. I had to use the JsonObjectRequest class and not the StringRequest on. What JsonRequest does is that it converts your HashMap key-value pairs into a JSON Format.

        private void registerUser(String email_address,String username, String 
        password) {
        String tag_json_obj = "json_obj_req";
    
        final ProgressDialog pDialog = new ProgressDialog(this);
        pDialog.setMessage("posting...");
        pDialog.show();
    
        final String mVendorId = 
         DeviceDetails.getInstance(mContext).getVendor_id();
         String mUserId = UserModel.getInstance(mContext).getUser_id();
        String location = getResources().getConfiguration().locale.getCountry();
        final HashMap<String, String> postParams = new HashMap<String, String>  
        ();
        postParams.put("username", username);
        postParams.put("email", email_address);
        postParams.put("password", password);
        postParams.put("location", location);
    
    
    
        Response.Listener<JSONObject>  listener;
        Response.ErrorListener errorListener;
        final JSONObject jsonObject = new JSONObject(postParams);
    
        JsonObjectRequest jsonObjReq = new 
        JsonObjectRequest(AppConfig.URL_REGISTER, jsonObject,
                new com.android.volley.Response.Listener<JSONObject>() {
    
                    @Override
                    public void onResponse(JSONObject response) {
                        //Log.d("TAG", response.toString());
                        try {
                            Toast.makeText(getApplicationContext(), 
           response.getString("message"), Toast.LENGTH_LONG).show();
                            // Toast.makeText(getApplicationContext(), "Thank 
           you for your post", Toast.LENGTH_LONG).show();
    
                            if (response.getString("status").equals("success")){
    
    
                                session.setLogin(true);
    
    
                                pDialog.dismiss();
                               Intent i = new 
            Intent(RegisterActivity.this,Welcome.class);
                               startActivity(i);
    
                                finish();
                            }
                        } catch (JSONException e) {
                            Log.e("TAG", e.toString());
                        }
                        pDialog.dismiss();
                    }
                }, new com.android.volley.Response.ErrorListener() {
    
            @Override
            public void onErrorResponse(VolleyError error) {
                //VolleyLog.d("TAG", "Error: " + error.getMessage());
                pDialog.dismiss();
    
            }
        }) {
    
            @Override
            public String getBodyContentType() {
                return "application/json; charset=utf-8";
            }
    
    
        };
    
    
        // Adding request to request queue
        AppController.getInstance().addToRequestQueue(jsonObjReq, tag_json_obj);
    
    
    
      }
    
    0 讨论(0)
提交回复
热议问题