使用android volley

时间:2016-04-30 18:58:54

标签: android database android-volley

我尝试使用Google Volley通过调用API更新服务器上的数据库。但不知何故,数据库不会更新。检索数据时,问题不存在(Method.GET)

这是我的snipet代码:

    HashMap<String, String> params = new HashMap<>();
    params.put(.....);

    JsonObjectRequest postReq = new JsonObjectRequest(Request.Method.POST,
            Api.URL_POST_DATA, new JSONObject(params),
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    progressDialog.setVisibility(View.GONE);
                    if (response.toString().equalsIgnoreCase("{\"result\":\"OK\"}")) {
                        Toast.makeText(MainActivity.this, "Success", Toast.LENGTH_SHORT).show();
                    } else {
                        Toast.makeText(MainActivity.this, "Failed", Toast.LENGTH_SHORT).show();
                    }
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    progressDialog.setVisibility(View.GONE);
                    Toast.makeText(MainActivity.this, "Check internet connection", Toast.LENGTH_SHORT).show();
                }
            });

    postReq.setRetryPolicy(new DefaultRetryPolicy(10000,
            DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
            DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

    postReq.setShouldCache(false);

    VolleyHelper.getInstance(this).addToRequestQueue(postReq);
    VolleyHelper.getInstance(this).getRequestQueue().getCache().invalidate(Api.URL_POST_DATA, true);

然后我尝试使用PostMan手动更新数据库,以确保我的API端和我的数据库上的问题没有成功更新。

我的代码出错吗?任何帮助将非常感激。

由于

2 个答案:

答案 0 :(得分:0)

将请求标头的Content-Type值设置为“application/json”。这可能是个问题。 为此,您需要覆盖请求对象上的getHeaders()方法。

答案 1 :(得分:0)

谢谢大家的线索,我做错了。我发送了HashMap但是根据我的请求发送了JsonObjectRequest。所以我使用StringObject而不是JsonObjectRequest。