哪个是向JSON Volley请求添加参数的最有效方法?

时间:2018-03-12 10:45:56

标签: android rest android-volley

我有来自api的关于啤酒的简单应用程序数据集。 我想通过警告对话框来设置四个参数的方式,看起来我的方式有点原始和复杂,看起来像:

private String createFilteredUrl() {
    String queryEndpoint = "?";
    StringBuilder sb = new StringBuilder();
    if(alcFromV != 0){
        sb.append("abv_gt=" + alcFromV);
    }
    if(alcToV != 0){
        sb.append("abv_lt=" + alcToV);
    }
    if(ibuFromV != 0){
        sb.append("ibu_gt=" + ibuFromV);
    }
    if(ibuToV != 0){
        sb.append("ibu_lt=" + ibuToV);
    }
  return queryEndpoint;

}

它只是部分完成,因为我认为这是非常低效的方式,并且开发了一些更简单的解决方案。在这里我应该重写if语句条件,因为如果用户跳过一个字段而不是忽略其中一个参数,依此类推,会有很多if语句,整个代码看起来不会很干净

所以,这是我应该用参数做我的请求的方式吗?

2 个答案:

答案 0 :(得分:1)

将您的alcFromValcToVibuFromV等放入数组中,将if语句替换为for或for-each语句,然后通过数组内容进行迭代。

仍然原始但不那么原始! ;)

答案 1 :(得分:1)

如果您使用的是Volley,那么为什么不使用其getParams()覆盖方法

        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            Map<String, String> params = new HashMap<>();
            headerParams.put("key1", "val1");
            headerParams.put("key2", "val2");
            ..............
            return params;
        }