Volley chaîne de la demande d'erreur tout en passant de la chaîne avec la valeur null comme paramètre
J'utilise le code suivant pour la chaîne de la demande sur le volley -
pDialog = new ProgressDialog(context);
pDialog.setMessage("Loading...");
pDialog.setCancelable(false);
pDialog.show();
StringRequest strReq = new StringRequest(Method.POST,
url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
pDialog.dismiss();
Log.e(tag, response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
pDialog.dismiss();
}
}) {
protected Map<String, String> getParams(){
Map<String, String> params = new HashMap<String, String>();
params.put("tag", "SHOW_FILE");
params.put("filename",filename);
return params;
};
};
//Adding request to request queue
Application.getInstance().addToRequestQueue(strReq, "get_file");
Si la variable nom de fichier=null, j'obtiens l'erreur suivante:
08-02 10:28:06.192: E/Volley(2935): [2128] NetworkDispatcher.run: Unhandled exception java.lang.NullPointerException
08-02 10:28:06.192: E/Volley(2935): java.lang.NullPointerException
08-02 10:28:06.192: E/Volley(2935): at libcore.net.UriCodec.encode(UriCodec.java:132)
08-02 10:28:06.192: E/Volley(2935): at java.net.URLEncoder.encode(URLEncoder.java:57)
08-02 10:28:06.192: E/Volley(2935): at com.android.volley.Request.encodeParameters(Request.java:449)
08-02 10:28:06.192: E/Volley(2935): at com.android.volley.Request.getBody(Request.java:435)
08-02 10:28:06.192: E/Volley(2935): at com.android.volley.toolbox.HurlStack.addBodyIfExists(HurlStack.java:236)
08-02 10:28:06.192: E/Volley(2935): at com.android.volley.toolbox.HurlStack.setConnectionParametersForRequest(HurlStack.java:210)
08-02 10:28:06.192: E/Volley(2935): at com.android.volley.toolbox.HurlStack.performRequest(HurlStack.java:106)
08-02 10:28:06.192: E/Volley(2935): at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:93)
08-02 10:28:06.192: E/Volley(2935): at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:110)
Est-il besoin d'une vérification de valeur null sur tous les param je POSTE ou de toute autre méthode pour résoudre ce problème et de manipuler avec la valeur NULL ?
OriginalL'auteur Vinil Chandran | 2014-08-02
Vous devez vous connecter pour publier un commentaire.
Grâce Giru Bhai pour votre aide
J'ai créé une nouvelle méthode pour résoudre ce problème, tandis que la variable nulle
Je pense que c'est plus facile que de vérifier chaque valeurs avant de le mettre à la carte
Merci beaucoup de travail!!!
Fonctionne comme un charme, merci beaucoup, vous avez sauvé ma journée 🙂
OriginalL'auteur Vinil Chandran
Dans Volley Demande De Classe il appelle
encodeParameters
méthode appelée pargetBody()
méthode.Dans
getBody()
méthode il vérifier pour tous lesparams
commemais pas de paramètres individuels.Donc, vous avez pour vérifier la valeur null à la capacité de chacun des paramètres dans
getParams()
méthode commeDans
encodeParameters
méthode n'est pas donné pour la vérification de valeur null.Pour plus d'informations, voir github.com/mcxiaoke/android-volley/blob/master/src/com/android/...OriginalL'auteur Giru Bhai