2017-03-04 17 views
0

bodyパラメータにstringのコレクションを含むPOSTリクエストを送信したいと思います。以下は、ここにストリングのコレクションでボレーを使用してPOSTリクエストを送信する方法

{ 
    "Emails": [ 
    "sample string 1", 
    "sample string 2" 
    ] 
} 

とformat-私の要求のサンプルは、私がtrying-

private void sendEmailRequest(final String email, String playId) { 
    String url = "https://someurl"; 
    Map<String, String> postParam = new HashMap<String, String>(); 
    postParam.put("Emails", "["+ email +"]"); 

    JsonObjectRequest jsonRequest = new JsonObjectRequest(Request.Method.POST, url,new JSONObject(postParam), 
      new Response.Listener<JSONObject>() { 
       @Override 
       public void onResponse(JSONObject response) { 
        Log.d(TAG, response.toString());    
       } 
      }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      VolleyLog.d(TAG, "Error: " + error.getMessage()); 
     } 
    }){ 
     /** 
     * Passing some request headers 
     * */ 
     @Override 
     public Map<String, String> getHeaders() throws AuthFailureError { 
      HashMap<String, String> headers = new HashMap<String, String>(); 
      headers.put("Authorization", "Bearer " + myToken); 
      headers.put("Content-Type", "application/json; charset=utf-8"); 
      return headers; 
     } 
    }; 
    // Adding request to request queue 
    AppController.getInstance().addToRequestQueue(jsonRequest, tagStringReq); 
} 

午前何ですが、それは常にエラーとonErrorResponse方法に行く

E/Volley: [613] BasicNetwork.performRequest: Unexpected response code 500 for https://someurl 

をlogs-この問題から克服するための提案をお願いします。

答えて

0

あなたのJSON構造の等価ボディ要求:

{ 
    "Emails": [ 
    "sample string 1", 
    "sample string 2" 
    ] 
} 

はこのようなものです:

try { 
    JSONObject body = new JSONObject(); 
    JSONArray array = new JSONArray(); 
    array.put("sample string 1"); 
    array.put("sample string 2"); 
    body.put("Emails", array.toString()); 

    new JsonObjectRequest(Request.Method.POST, url, body, listener, listener); 
    .... 
} catch (JSONException e) { 
    // ignores exception 
} 

注:使用する場合JsonObjectRequestあなたがコンテンツタイプを追加する必要はありません。私はこの行を参照しています:

headers.put("Content-Type", "application/json; charset=utf-8"); 
関連する問題