Android:使用JsonObject Params的Volley字符串请求

时间:2017-05-23 21:26:49

标签: android android-volley

我遇到了Volley String / JsonObject请求的问题。

当我尝试登录时,我想将json-data作为参数传递,但我想要接收的是一个字符串。这会导致问题,因为在使用JsonObject请求时,它需要数据是JsonObject的数据,并且因为返回类型是java.lang.string类型,所以它反而抱怨它不能将java.lang.string类型转换为jsonObject。精细。当尝试String请求时,params不能是jsonObject,所以这根本不起作用。

我该怎么办?总之,我希望能够传递JsonObject参数并检索字符串,这可能吗?

这里有一些代码可以帮助您了解我的情况:

Map<String, String> postParam = new HashMap<String, String>();
postParam.put("name", mEmail);
postParam.put("password", mPassword);

RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST,"http://" + getString(R.string.user_login), new JSONObject(postParam),
        new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                    Toast.makeText(LoginActivity.this, "Success " + response ,Toast.LENGTH_LONG).show();
            }
        },
        new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(LoginActivity.this,error.toString(),Toast.LENGTH_LONG ).show();
                Log.d("TAG" ,error.toString());
                failedLogin();

            }
        });
requestQueue.add(jsonObjectRequest);

这会提示错误

  

com.android.Volley.ParseError:org.json.JSONException:java.lang.String类型的值(STRING TOKEN)无法转换为JsonObject

并且使用字符串请求,不幸的是你无法用getParams传递jsonObject!

0 个答案:

没有答案