我如何自定义JsonObjectRequest,以便可以覆盖凌空库中的getParams方法

问题描述 投票:0回答:1

我尝试使用json objectRequest,但无法将数据发布到我在下面提供的php文件中

    reg=regno.getText().toString().trim();
        psw=password.getText().toString().trim();

        JSONObject postparams=new JSONObject();
        try {
            postparams.put("reg",reg);
            postparams.put("password",psw);
        } catch (JSONException e) {
            e.printStackTrace();
        }

       JsonObjectRequest jor=new JsonObjectRequest(Request.Method.POST, url,postparams , new Response.Listener<JSONObject>() {
           @Override
           public void onResponse(JSONObject response) {
               try {
                   int resultCode=response.getInt("resultCode");
                   switch (resultCode){
                       case 1:
                            Toast.makeText(getApplicationContext(),response.getString("responseDesc"),Toast.LENGTH_SHORT).show();
                            Intent i=new Intent(getApplicationContext(),TabLayout.class);
                            startActivity(i);
                           break;
                       default:
                           Toast.makeText(getApplicationContext(),"Unkown error",Toast.LENGTH_SHORT).show();
                   }
               } catch (JSONException e) {
                   e.printStackTrace();
               }

           }
       }, new Response.ErrorListener() {
           @Override
           public void onErrorResponse(VolleyError error) {
               Toast.makeText(getApplicationContext(),error.getMessage(),Toast.LENGTH_SHORT).show();

           }
       });




        Mysigleton.getInstance(getApplicationContext()).addRequest(jor);

以下是我希望我的参数发布的php代码$ login = new loginApi($ _ POST ['reg'],$ _ POST ['password']);

android android-volley
1个回答
0
投票

尝试一下。。我在下面的代码中使用StringRequest,但是您也可以使用JsonObjectRequest。

      JSONObject jsonBody = new JSONObject();
        jsonBody.put("reg", reg);
        jsonBody.put("password", psw);

        final String requestBody = jsonBody.toString();

        StringRequest stringRequest = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>() {

            @Override
            public void onResponse(String response) {

                Log.i("VolleyResponse", response);

            }

        }, new Response.ErrorListener() {

            public void onErrorResponse(VolleyError error) {

            }

        }) {

            @Override
            public String getBodyContentType() {
                return "application/json; charset=utf-8";
            }

            @Override
            public byte[] getBody() {
                return requestBody.getBytes(StandardCharsets.UTF_8);
            }
        };
        AppController.getInstance().addToRequestQueue(stringRequest);
© www.soinside.com 2019 - 2024. All rights reserved.