使用json数据进行Volley POST请求

时间:2017-05-22 07:36:50

标签: android json android-volley

我正在尝试使用排球请求登录我的应用,但是,我收到以下错误

  

" com.android.volley.ParseError:org.json.JSONException:类型java.lang.String的值Bad无法转换为JSONobject"

尝试登录时。

以下是截击请求的代码:

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

            //final JSONObject jsonBody = new JSONObject("{\"name\":\""+ mEmail +"\", \"password\":\"" + mPassword + "\"}");
            RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
            JsonObjectRequest jsonObjRequest = 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!!",Toast.LENGTH_LONG).show();
                        }
                    },
                    new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {
                            Toast.makeText(LoginActivity.this,error.toString(),Toast.LENGTH_LONG ).show();
                            failedLogin();

                        }
                    });
            requestQueue.add(jsonObjRequest);

我已经使用python中的请求尝试了代码,包括名称和密码作为Json参数,如下所示:

post(address, data = json.dumps({"name": "alex", "password": "XXXX"}))

这个工作并返回200(OK!)。它只是不能与android-volley一起使用。

感谢任何帮助!

编辑:
我尝试使用StringRequest而不是JSONRequest,而是出现了这个错误

  

E / Volley:[3835] BasicNetwork.performRequest:ADDR的意外响应代码400   D / TAG:com.android.volley.ServerError

编辑2:
这次我成功地从LogCat中获得了更多

  

W / System.err:org.json.JSONException:Value(JSONObject.java:160)   05-22 11:09:30.255 18612-18612 / com.example.envi W / System.err:at org.json.JSONObject。(JSONObject.java:173)   05-22 11:09:30.255 18612-18612 / com.example.envi W / System.err:at com.example.envi.LoginActivity $ UserLoginTask $ 2.onErrorResponse(LoginActivity.java:364)   05-22 11:09:30.255 18612-18612 / com.example。   envi W / System.err:at com.android.volley.Request.deliverError(Request.java:564)   05-22 11:09:30.255 18612-18612 / com.example.envi W / System.err:at com.android.volley.ExecutorDelivery $ ResponseDeliveryRunnable.run(ExecutorDelivery.java:101)   05-22 11:09:30.255 18612-18612 / com.example.envi W / System.err:at android.os.Handler.handleCallback(Handler.java:751)   05-22 11:09:30.255 18612-18612 / com.example。 W / System.err:在android.os.Handler.dispatchMessage(Handler.java:95)   05-22 11:09:30.255 18612-18612 / com.example.envi W / System.err:at android.os.Looper.loop(Looper.java:154)   05-22 11:09:30.255 18612-18612 / com.example.envi W / System.err:at android.app.ActivityThread.main(ActivityThread.java:6290)   05-22 11:09:30.255 18612-18612 / com.example.envi W / System.err:at java.lang.reflect.Method.invoke(Native Method)   05-22 11:09:30.255 18612-18612 / com.example.envi W / System.err:at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:886)   05-22 11:09:30.255 18612-18612 / com.example.envi W / System.err:at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

0 个答案:

没有答案