繁体   English   中英

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

[英]how can i custom the JsonObjectRequest so as i can override the getParams method in volley library

我曾尝试使用 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']);

试试这个.. 我在下面的代码中使用了 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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM