Volley string request error while passing string with null value as param

走远了吗. 提交于 2019-12-04 04:06:00

Thanks Giru Bhai for your help

I have created a new method to solve this problem while variable become null

       protected Map<String, String> getParams(){
            Map<String, String> params = new HashMap<String, String>();
            params.put("key1", value1);
            params.put("key2",value2);
            params.put("key3",value3);
            return checkParams(params);
        };


        private Map<String, String> checkParams(Map<String, String> map){               
            Iterator<Entry<String, String>> it = map.entrySet().iterator();
            while (it.hasNext()) {
                Map.Entry<String, String> pairs = (Map.Entry<String, String>)it.next();
                if(pairs.getValue()==null){
                    map.put(pairs.getKey(), "");
                }
            }
            return map;             
        }

I think this is more easy than checking each values before putting it in to map

In Volley Request Class it calls encodeParameters method which called by getBody() method.

In getBody() method it check for all the params as

 public byte[] getBody() throws AuthFailureError {
        Map<String, String> params = getParams();
        if (params != null && params.size() > 0) {
            return encodeParameters(params, getParamsEncoding());
        }
        return null;
    }

but not for individual parameters.So you have to check for null-ability in individual parameters in getParams() method like

  protected Map<String, String> getParams(){
            Map<String, String> params = new HashMap<String, String>();
            params.put("tag", "SHOW_FILE");
            if(filename != null)params.put("filename",filename);
            return params;
        };
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!