Volley string request-Fehler beim übergeben Zeichenfolge mit null-Wert als param
Ich bin mit dem folgenden code, in string request auf 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");
Wenn die variable filename=null, ich erhalte die folgende Fehlermeldung:
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)
Ist es eine null-Wert-Prüfung auf alle param ich POST oder andere Methoden, um dieses problem zu lösen und handle mit dem Wert NULL ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dank Giru Bhai für Eure Hilfe
Habe ich eine neue Methode, um dieses problem zu lösen, während die Variablen werden null
Ich denke, das ist einfacher als das überprüfen die einzelnen Werte, bevor Sie Sie in zu map
In Volley Anfrage Klasse es fordert
encodeParameters
Methode, die aufgerufengetBody()
Methode.In
getBody()
Methode-check für alleparams
alsaber nicht für die einzelnen Parameter.So haben Sie zu prüfen, für die null-Fähigkeit in den einzelnen Parametern in
getParams()
Methode wieencodeParameters
Methode ist nicht für null-Wert-Prüfung.Weitere Informationen finden Sie unter github.com/mcxiaoke/android-volley/blob/master/src/com/android/...