2017-01-12 3 views
-2

hallo jeder im Angesicht eines Problems mit volley löschen Anfrage.Volley löschen Anfrage mit Body-Daten nicht funktioniert

Ich arbeite an Aufgabe in Benutzer hinzufügen oder entfernen Sie einige Kontakte von der ID.

Ich benutze Volley-Bibliothek dafür.

API ist mit Postboten getestet und funktioniert gut.

private void AddContactInList(final Contacts contacts,int RequestMethod) { 

JSONArray ContactArray = new JSONArray(); 

ContactArray.put(StoredContactid); 

final String jsonStr = ContactArray.toString(); 

String URl = OrganizationModel.getApiBaseUrl() + getOrgId() + "/lists/" + contacts.getId()+"/contacts"; 

Log.i(TAG,URl); 

RequestQueue requestQueue = Volley.newRequestQueue(getContext()); 

JsonObjectRequest jsonArrayRequest = new JsonObjectRequest(RequestMethod,URl, 
     new Response.Listener<JSONObject>() { 
      @Override 
      public void onResponse(JSONObject response) { 

       Log.i(TAG,response.toString()); 

       try { 

        JSONArray mJSONArray = response.getJSONArray("contactIds"); 

        contacts.setCode(String.valueOf(mJSONArray.length())); 

        long time = System.currentTimeMillis(); 

        sqliteDataBaseHelper.changeContactUpdatedON(StoredContactid, String.valueOf(time)); 

        sqliteDataBaseHelper.updateListContactsAndLength(contacts.getId(), mJSONArray.toString(), (mJSONArray.length())); 

        dataAdapter.notifyDataSetChanged(); 

       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 
      } 
     }, 
     new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       Log.i(TAG,error.toString()); 
       String json = null; 
       NetworkResponse response = error.networkResponse; 
       if (response != null && response.data != null) { 
        switch (response.statusCode) { 
         case 400: 
         case 405: 
          json = new String(response.data); 
          json = dataHelper.trimMessage(json, "message"); 
          if (json != null) dataHelper.displayMessage(json); 
          break; 
        } 

       } 


      } 
     }) { 
    @Override 
    public String getBodyContentType() { 
     return "application/json; charset=utf-8"; 
    } 

    @Override 
    public byte[] getBody() { 
     try { 
      return jsonStr == null ? null : jsonStr.getBytes("utf-8"); 
     } catch (UnsupportedEncodingException uee) { 
      VolleyLog.wtf("Unsupported Encoding while trying to get the bytes of %s using %s", 
        jsonStr, "utf-8"); 
      return null; 
     } 
    } 

    @Override 
    public Map<String, String> getHeaders() throws AuthFailureError { 
     Map<String, String> headers = new HashMap<String, String>(); 
     headers.put("Content-Type", "application/json; charset=utf-8"); 
     headers.put("Authorization", "Basic " + GetApiAccess()); 
     return headers; 
    } 
}; 
jsonArrayRequest.setRetryPolicy(new DefaultRetryPolicy(
     9000, 
     DefaultRetryPolicy.DEFAULT_MAX_RETRIES, 
     DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 
requestQueue.add(jsonArrayRequest); 

}

+1

Ich verstehe nicht, warum pplz Stimme geben nach unten. Wenn du nicht antworten kannst, hast du kein Recht, die Stimme zu verlieren. –

+1

Pls versuchen http://stackoverflow.com/questions/33553559/delete-request-with-header-and-parametes-volley/ – BNK

Antwort

0

In meiner SQLite Datenbank, der folgende Code funktioniert. Hoffe, dass es Ihnen helfen kann ..

public void DeleteData(){ 
    btnDltData.setOnClickListener(
      new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        Integer deleteRows = myDB.deleteData(editId.getText().toString()); 
        if(deleteRows > 0) 
         Toast.makeText(MainActivity.this, "Task Clear..", Toast.LENGTH_SHORT).show(); 
        else 
         Toast.makeText(MainActivity.this, "Task not Clear..", Toast.LENGTH_SHORT).show(); 

        editId.setText(""); 

       } 
      } 
    ); 
} 
+0

danke für die Antwort, aber es ist nicht im Zusammenhang mit lokalen db es ist Server Seite probelm –