如何修复改造2同时发送多个请求

时间:2019-05-12 08:22:38

标签: android retrofit2

我最近检查了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();

        }
    });
}

0 个答案:

没有答案