0
私は次のようなJSON送信しようとしています:は返し400コード
{"communities" : [381, 382, 383, 384, 385]}
を私は私はハッシュマップを送信しようとしています。このコードを使用してproblemstを持っていません
JSONObject dataToPost = new JSONObject();
JSONArray jsa = new JSONArray();
jsa.put(381);
jsa.put(382);
jsa.put(383);
jsa.put(384);
jsa.put(385);
jsa.put(386);
try {
dataToPost.put("communities", jsa);
} catch (JSONException e) {
e.printStackTrace();
}
final JSONObject dataFinal = dataToPost;
Log.i("fdsfs", dataFinal.toString());
StringRequest postRequest = new StringRequest(Request.Method.POST, GlobalValues.registerSetCommunities,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
manageSuccessResponse(response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
manageErrorResponse(error);
}
}
) {
@Override
public byte[] getBody() {
try {
return dataFinal.toString().getBytes("utf-8");
} catch (UnsupportedEncodingException e) {
return null;
}
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/x-www-form-urlencoded");
headers.put("Authorization", "Bearer " + Credentials.getAuthToken(mContext));
return headers;
}
};
postRequest.setRetryPolicy(new DefaultRetryPolicy(
GlobalValues.request_timeout,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
Volley.newRequestQueue(mContext).add(postRequest);
私はJsonObjectRequestとした試みた別の方法:値は、サーバがそのように認識し、私のコード400を返していない整数の配列であるべき時にキーと値などが、この場合のString。
JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, GlobalValues.registerSetCommunities, dataFinal, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.i("SENDMOVE", response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
manageErrorResponse(error);
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> headers = new HashMap<String, String>();
headers.put("cache-control", "no-cache");
headers.put("Content-Type", "application/json");
headers.put("Authorization", "Bearer " + Credentials.getAuthToken(mContext));
return headers;
}
};
request.setRetryPolicy(new DefaultRetryPolicy(
GlobalValues.request_timeout,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
Volley.newRequestQueue(mContext).add(request);
要求が正常に受信された場合は、サーバー側で値を印刷してみてください。どのコードがそのエラーの原因になっているのかは分かりません。 – Enzokie