我最近检查了mysql数据库,注意到在用户表中有重复的记录,请注意您为每个用户生成了不同的唯一ID,并且他们的密码哈希值也不同,但是在数据库上的注册时间完全相同。问题是我防止从服务器端发送重复的注册电子邮件。我一直在尝试重现此错误,但我做不到。经过一番研究后,我发现它与改造失败时重试网络请求有关。我将连接超时增加到60秒,将读取超时增加到60秒,但是我没有更改写入超时。我不知道这是否是问题的原因
我想防止改造运行重复的请求
//my retrofit api class
public class Api {
private static Retrofit retrofit = null;
public static ApiInterface getClient() {
Gson gson = new GsonBuilder()
.setLenient()
.create();
final OkHttpClient okHttpClient = new OkHttpClient.Builder()
.readTimeout(60, TimeUnit.SECONDS)
.connectTimeout(60, TimeUnit.SECONDS)
.build();
// change your base URL
if (retrofit == null) {
retrofit = new Retrofit.Builder()
.baseUrl("http://192.168.200.2/").client(okHttpClient)
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
}
//Creating object for our interface
ApiInterface api = retrofit.create(ApiInterface.class);
return api; // return the APIInterface object
}}
//我的活动课程
private void loadData(String fullname, String password, final String email, String tel_no, String referee,int accType){
globalConfig.showLoading(this);
(Api.getClient().signup(fullname,password,email,tel_no,referee,accType)).enqueue(new Callback<PostRequestPojo>() {
@Override
public void onResponse(Call<PostRequestPojo> call, Response<PostRequestPojo> response) {
globalConfig.dismissLoader();
if(response.body().getCode()==1){
setUpPrefStorage(response.body().getFullname(),email,response.body().getPhone(),1,response.body().getMyId(),0);
// decideWhereNext();
Toast.makeText(SignupActivity.this,response.body().getMsg(),Toast.LENGTH_SHORT).show();
Intent i = new Intent(SignupActivity.this,Dashboard.class);
i.putExtra("newbiew",1);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(i);
}else{
Toast.makeText(SignupActivity.this,response.body().getMsg(),Toast.LENGTH_SHORT).show();
//AT THIS POINT, THROW ALL THE ERROR AT YOUR FOOTPATH;
}
}
@Override
public void onFailure(Call<PostRequestPojo> call, Throwable t) {
Toast.makeText(SignupActivity.this,"An error occured, please try again",Toast.LENGTH_SHORT).show();
globalConfig.dismissLoader();
}
});
}