Volley POST REQUEST错误500

时间:2016-08-21 17:47:47

标签: android android-volley

JSON:

{
  "isRegistrationSuccess":"true"
}

这是我的后端在用户成功注册系统时应该提供的内容。我发送姓名,电子邮件和密码作为参数。我收到500错误。

/Volley: [188] BasicNetwork.performRequest: Unexpected response code 500 for http://100.100.202.200/mobile/register?name=admin&email=admin@nomail.com&password=admin123

虽然,我可以在后端看到用户信息。这是我的代码:

RequestQueue queue = Volley.newRequestQueue(this);
        String url_to_parse = getLink(name,email,password).trim();
        StringRequest stringReq = new StringRequest(Request.Method.POST, url_to_parse, new Response.Listener<String>() {
            @Override
            public void onResponse(String response){
                try{
                    Log.d("Response",response);
                    JSONArray obj = new JSONArray();
                    boolean isLoginSuccess = Boolean.parseBoolean(obj.getString(0));
                    if(isLoginSuccess){
                       onSignupSuccess();
                    }else{
                        onSignupFailed();
                    }
                }catch (JSONException e){
                    e.printStackTrace();
                    onSignupFailed();
                }
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
               onSignupFailed();
                Log.e("Error",String.valueOf(error.getMessage()));
            }
        });
        queue.add(stringReq);

我不确定我在这里做错了什么?我该如何解决?

2 个答案:

答案 0 :(得分:1)

POST数据在受保护的Map getParams()中提供,而不是URL:

@Override
protected Map<String,String> getParams(){
    Map<String,String> params = new HashMap<String, String>();
    params.put("parametr1","value1");
    params.put("parametr2","value2");
    params.put("parametr3","value3");
    return params;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
    Map<String,String> params = new HashMap<String, String>();
    params.put("Content-Type","application/x-www-form-urlencoded");
    return params;
}

修复您的网址并使用JsonObjectRequest

答案 1 :(得分:-1)

您想要将数组解析为布尔值,您必须像这样遍历数组:

 JSONObject jsonObject = new JSONObject(response);
                            JSONArray jsonArray= jsonObject.getJSONArray("example");
                            if (jsonArray.length() != 0) {
                                for (int i = 0; i < jsonArray.length(); i++) {
                                    JSONObject jo = jsonArray.getJSONObject(i);                                  
                                    boolean isLoginSuccess = Boolean.parseBoolean(jo.getString("exampleString"));
                                }  
                            }