2015-06-22 2 views
0

Я пытаюсь сделать POST запрос на мое приложение с помощью Volley, но он говоритAndroid Volley дает мне 400 код ошибки (Bad Request)

E/Volley﹕ [9988] BasicNetwork.performRequest: Unexpected response code 400 for http://test_url/SendMessage 

Но он прекрасно работает в PostMan.

Снимок Почтальон:

enter image description here

Вот мой код:

public JSONObject getJsonObject() { 
     Map<String, Object> postParam = new HashMap<>(); 
     postParam.put("Recipients", new String[]{authorId + ":I"}); 
     postParam.put("Subject", etSubject.getText().toString()); 
     postParam.put("Text", etMessage.getText().toString()); 
     postParam.put("MessageState", "N"); 
     postParam.put("ParentId", ""); 
     postParam.put("PrivateMessageGuid", GUID); 
     Log.i("JSON Parameter ===", Utils.getRequestJSONObject(postParam).toString()); 
     return Utils.getRequestJSONObject(postParam); 
    } 

JSON Параметр ==={"PrivateMessageGuid":"ac74df70-77d8-4281-a723-5c3c65f4d212", "Text":"hello test", "MessageState":"N","Subject":"Re: Hello Sundar","Recipients":["311:I"],"ParentId":""}

Основной код:

JsonObjectRequest jsonReq = new JsonObjectRequest(Request.Method.POST, 
      Constants.ReplyMessageUrl, getJsonObject(), 
      new Response.Listener<JSONObject>() { 
       @Override 
       public void onResponse(JSONObject response) { 
        Toast.makeText(getApplicationContext(), 
          "Message Send", Toast.LENGTH_SHORT).show(); 

       } 
      }, new Response.ErrorListener() { 

     @Override 
     public void onErrorResponse(VolleyError error) { 
      Toast.makeText(getApplicationContext(), 
        getResources().getString(R.string.try_again), Toast.LENGTH_SHORT).show(); 
     } 
    }) { 
     @Override 
     public Map<String, String> getHeaders() throws AuthFailureError { 
      HashMap<String, String> headers = new HashMap<>(); 
      headers.put("Authorization", mApp.getTokenType() + " " + mApp.getAccessToken()); 
      headers.put("Content-Type", "application/json"); 
      headers.put("Accept", "application/json"); 
      return headers; 
     } 
    }; 

    RequestQueue mRequestQueue = mApp.getRequestQueue(); 
    mRequestQueue.add(jsonReq); 

Пожалуйста, помогите мне получить решение. Спасибо.

+1

похоже дубликат http://stackoverflow.com/questions/21739276/android-volley-gives-me-400-error – random

+0

@ random я видел, что вопрос –

+0

@Viks у вас есть какие-то решения, также получаю такие же – Mohan

ответ

0

Установите wirehark и сравните оба запроса в нем, чтобы увидеть разницу в реальном времени. + Предпочтительно использовать GSON с классом, сделанным на основе того, что находится в getJsonObject()