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



我尝试使用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=新登录Api($_POST['reg'],$_POST['密码'](;

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

相关内容

最新更新