Why not work POST method in retrofit in Android -


i want use retrofit library post , methods server. when use proguard , generate apk not running post codes!
my register codes:

    @override     public void onclick(view view) {         switch (view.getid()) {             case r.id.register_button:                 name = registername.gettext().tostring();                 email = registeremail.gettext().tostring();                 password = registerpassword.gettext().tostring();                 if (!name.isempty() && !email.isempty() && !password.isempty()) {                     if (password.length() < 6) {                         snackbar.make(getview(), "", snackbar.length_long).show();                     } else {                         registerload.setvisibility(view.visible);                         registersend.setvisibility(view.invisible);                         registerprocess(name, email, password);                     }                 } else {                     snackbar.make(getview(), "fill fields", snackbar.length_long).show();                 }                 break;         }     }      private void registerprocess(string name, string email, string password) {          gson gson = new gsonbuilder()                 .setlenient()                 .create();          okhttpclient client = new okhttpclient();          retrofit retrofit = new retrofit.builder()                 .baseurl(constants.base_url)                 .client(client)                 .addconverterfactory(gsonconverterfactory.create(gson))                 .build();          retrofit_apiinterface requestinterface = retrofit.create(retrofit_apiinterface.class);          user user = new user();         user.setname(name);         user.setemail(email);         user.setpassword(password);          serverrequest request = new serverrequest();         request.setoperation(constants.register_operation);         request.setuser(user);          call<serverresponse> response = requestinterface.operation(request);         response.enqueue(new callback<serverresponse>() {             @override             public void onresponse(call<serverresponse> call, response<serverresponse> response) {                 try {                     serverresponse resp = response.body();                     if (resp.getresult() != null && resp.getresult().equals("success")) {                         snackbar.make(getview(), stringescapeutils.unescapehtml4(resp.getmessage()), snackbar.length_long).show();                         gotologin();                         registerload.setvisibility(view.invisible);                         registersend.setvisibility(view.invisible);                     } else {                         registersend.setvisibility(view.visible);                         snackbar.make(getview(), stringescapeutils.unescapehtml4(resp.getmessage()), snackbar.length_long).show();                     }                 } catch (exception e) {                     log.e("registerexception", "" + e);                 }             }              @override             public void onfailure(call<serverresponse> call, throwable t) {                 registerload.setvisibility(view.invisible);                 registersend.setvisibility(view.visible);                 snackbar.make(getview(), "try again", snackbar.length_long).show();             }         });     }      private void gotologin() {          fragment login = new loginfragment();         fragmenttransaction ft = getfragmentmanager().begintransaction();         ft.replace(r.id.loginfragment, login);         ft.commit();         toolbartitle.settext("login");         registerfab.setimagedrawable(getresources().getdrawable(r.drawable.ic_login_add));     } } 

my proguard ruls :

-dontwarn retrofit2.** -keep class retrofit2.** { *; } -keepattributes signature -keepattributes exceptions 

when use get methods not show me error, when use post method show me error!
in code, when register "success" or "failure" should message server , show in snackbar. when generate apk proguard not show me message in snackbar!

i added below codes in proguard-rules not obfuscate models , interface, work me again , not show anymessage server.

-dontwarn com.test.app.retrofit.rest.** -dontwarn com.test.app.retrofit.model.user.** 

how can fix problem? please me, need help

##---------------begin: proguard configuration gson  ---------- # gson uses generic type information stored in class file when working fields. proguard # removes such information default, configure keep of it. -keepattributes signature  # using gson @expose annotation -keepattributes *annotation*  # gson specific classes -keep class sun.misc.unsafe { *; } #-keep class com.google.gson.stream.** { *; }  # application classes serialized/deserialized on gson -keep class your.package.models.** { *; }  # prevent proguard stripping interface information typeadapterfactory, # jsonserializer, jsondeserializer instances (so can used in @jsonadapter) -keep class * implements com.google.gson.typeadapterfactory -keep class * implements com.google.gson.jsonserializer -keep class * implements com.google.gson.jsondeserializer    ##---------------end: proguard configuration gson  ----------      # platform calls class.forname on types not exist on android determine platform.     -dontnote retrofit2.platform     # platform used when running on java 8 vms. not used @ runtime.     -dontwarn retrofit2.platform$java8     # retain generic type information use reflection converters , adapters.     -keepattributes signature     # retain declared checked exceptions use proxy instance.     -keepattributes exceptions 

use above rules retrofit work progaurd note: supposed keep model classes here -keep class your.package.models. { *; } have suitable name


Comments

Popular posts from this blog

inversion of control - Autofac named registration constructor injection -

verilog - Systemverilog dynamic casting issues -

ios - Change Storyboard View using Seague -