解析http请求标头

时间:2013-05-01 20:53:41

标签: java

我收到一个请求标头,其值包含多个双引号,我如何在我的java代码中解析它?

这是标题的样子

pp-groups:“管理员”,“超级用户”,“查看”,“编辑”

4 个答案:

答案 0 :(得分:1)

为什么不拆分和修剪?

public static void main(String...arg) {
  List<String> vals = new ArrayList<String>();
  String header = "\"Administrator\",\"\"Super\" User\",,\"\",view,\"Edit\"";
  for(String val : header.split(",")) {
    if(val.length() > 0) {
      if(val.charAt(0) == '\"' && val.charAt(val.length()-1) == '\"') {
        if(val.length() > 2) { //not just a pair of quotes
          vals.add(val.substring(1, val.length()-1));
        }
      } else {
        vals.add(val);
      }
    }
  }
  System.out.println(vals);
}

输出:

[Administrator, "Super" User, view, Edit]

答案 1 :(得分:0)

我建议您查看split method

答案 2 :(得分:0)

使用split()StringTokenizer拆分字符串,然后关闭引号。

String header=request.getHeader("pp-groups");
for (String val : header.replace("\"", "").split(",")) System.out.println(val);

不支持内联引用,但不确定是否需要

答案 3 :(得分:0)

如果您尝试手动执行此操作,而不是使用现有框架进行HTTP请求,则需要自己解析字符串。最好的方法是使用正则表达式(http://docs.oracle.com/javase/tutorial/essential/regex/ ......这一点的重要部分:http://docs.oracle.com/javase/tutorial/essential/regex/groups.html)。或者,您可以花一些时间来处理各种String方法,例如.split和.substring