i implemented android app volley library connect database. connection 'get' , 'post' request works, servers response not working. happens because error response catch automatically errors (for example server response code 201 login successful, volley untersand error).
i override parsenetworkerror class request:
@override protected volleyerror parsenetworkerror(volleyerror volleyerror) { string parsed; networkresponse networkresponse = volleyerror.networkresponse; if(networkresponse != null && networkresponse.data != null) { try { parsed = new string(networkresponse.data, httpheaderparser.parsecharset(networkresponse.headers)); } catch (unsupportedencodingexception var4) { parsed = new string(networkresponse.data); } networkresponse response = new networkresponse(networkresponse.data); response<string> parsedresponse; switch(response.statuscode){ case 204: ... case 401: ... default: return volleyerror; } } return super.parsenetworkerror(volleyerror); } the problem volleyerror. class extends exception , not contains information (code error).
how can solve this?
you can handle this
@override public void onerrorresponse(volleyerror error) { // handle error types accordingly.for timeout & no connection error, can show 'retry' button. // authfailure, can re login user credentials. // in case can check how client forming api , debug accordingly. // servererror 5xx, can retry or handle accordingly. if( error instanceof networkerror) { } else if( error instanceof servererror) { } else if( error instanceof authfailureerror) { } else if( error instanceof parseerror) { } else if( error instanceof noconnectionerror) { } else if( error instanceof timeouterror) { } }
Comments
Post a Comment