android - NullPointerException in converting retrofit response to string? -


this retrofit class

public class apiclient { public static final string base_url = appconstants.base_url; private static retrofit retrofit = null;   public static retrofit getclient() {     if (retrofit == null) {         retrofit = new retrofit.builder()                 .baseurl(base_url)                 .addconverterfactory(gsonconverterfactory.create())                 .build();     }     return retrofit; }  public interface registerapi {     @post(appconstants.login_page)     call<jsonobject> getlogin(@body jsonobject loginparams); } } 

this retrofit request

jsonobject loginparams = ((mainactivity) getactivity()).requestparams.getloginparams(etusername.gettext().tostring(), etpassword.gettext().tostring());             apiclient.registerapi apiservice =                     apiclient.getclient().create(apiclient.registerapi.class);               call<jsonobject> call = apiservice.getlogin(loginparams);             call.enqueue(new callback<jsonobject>() {                 @override                 public void onresponse(call<jsonobject> call, response<jsonobject> response) {                     log.e("response", response.body().tostring());                 }                  @override                 public void onfailure(call<jsonobject> call, throwable t) {                  }             }); 

while converting response string null pointer

java.lang.nullpointerexception @ com.vfirst.ifbagro.login.loginfragment$1.onresponse(loginfragment.java:96) @ retrofit2.executorcalladapterfactory$executorcallbackcall$1$1.run(executorcalladapterfactory.java:68) @ android.os.handler.handlecallback(handler.java:730)  @ android.os.handler.dispatchmessage(handler.java:92)  @ android.os.looper.loop(looper.java:137)  @ android.app.activitythread.main(activitythread.java:5214)  @ java.lang.reflect.method.invokenative(native method)  @ java.lang.reflect.method.invoke(method.java:525)  @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:739)  @ com.android.internal.os.zygoteinit.main(zygoteinit.java:555)  @ dalvik.system.nativestart.main(native method) 

try logging response.body() first see if not null.

if using okhttpclient can add interceptor , log response, guaranteed work:

public response intercept(chain chain) throws ioexception {     request.builder builder = chain.request().newbuilder();     // add custom headers etc builder     ....     request request = builder.build();     response response = chain.proceed(request);     string body = response.body().string()     .... 

Comments

Popular posts from this blog

amazon web services - S3 Pre-signed POST validate file type? -

c# - Check Keyboard Input Winforms -