gpt4 book ai didi

android - Volley 第二次没有调用 getParams()

转载 作者:搜寻专家 更新时间:2023-11-01 07:47:14 25 4
gpt4 key购买 nike

我正在尝试使用 Android 中的 Volley 将登录参数发布到我的服务器。第一次登录时它会发送参数,但是在我注销并尝试再次登录后,它不会调用 getparams,而是发送以前的登录参数到服务器。

我尝试了日志语句,第一次它打印日志语句,但第二次它不会

StringRequest stringRequest=new StringRequest(Request.Method.POST,LOGIN_URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
if (response!=null){
Log.d("loginResponse", response);
try {
JSONObject object= new JSONObject(response);
uid=object.getString(KEY_UR_ID);
firstName=object.getString(KEY_F_NAME);
lastName=object.getString(KEY_L_NAME);
fullName=firstName+" "+lastName;
email=object.getString(KEY_EMAIL);
phone=object.getString(KEY_PHONE);
dob=object.getString(KEY_DOB);
gender=object.getString(KEY_GENDER);
userType=object.getString(KEY_UTYPE);
address=object.getString(KEY_U_ADDRESS);
pincode=object.getString(KEY_U_PINCODE);

// Inserting row in users table
db.addUser(uid, firstName, lastName,email,phone,gender,userType,address,pincode);
// user successfully logged in
// Create login session
session.setLogin(true);
loginProgress.dismiss();
onBackPressed();

} catch (JSONException e) {
loginProgress.dismiss();
Toast.makeText(getApplicationContext(),"Invalid username/password",Toast.LENGTH_LONG).show();
e.printStackTrace();
}

}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
String message = null;
if (error instanceof NetworkError) {
message = "Cannot connect to Internet...Please check your connection!";
} else if (error instanceof ServerError) {
message = "The server could not be found. Please try again after some time!!";
} else if (error instanceof AuthFailureError) {
message = "Invalid username/password";
} else if (error instanceof ParseError) {
message = "Parsing error! Please try again after some time!!";
} else if (error instanceof TimeoutError) {
message = "Connection TimeOut! Please check your internet connection.";
}
Toast.makeText(getApplicationContext(),message,Toast.LENGTH_SHORT).show();

loginProgress.dismiss();
}
})
{
@Override
protected Map<String,String> getParams(){

Map<String,String> params = new HashMap<String, String>();

//This does not appear in the log for second time login
Log.d("Params","Does it assign params?") ;
params.put(KEY_EMAIL, inputEmail);
params.put(KEY_PASSWORD, inputPassword);
return params;
}


@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String,String> header = new HashMap<String, String>();
header.put("Content-Type","application/x-www-form-urlencoded");
return header;
}
@Override
protected String getParamsEncoding() {
return "utf-8";
}
};
MySingleton.getInstance(getApplicationContext()).addToRequestQueue(stringRequest);

最佳答案

我也遇到过这个问题。它发生是因为截击参数缓存。尝试使用命令清理缓存:getCache().clear();即:

RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.getCache().clear();
requestQueue.add(stringRequest);

关于android - Volley 第二次没有调用 getParams(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41487423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com