java - 如何高效获取每个http状态码的计数?

标签 java algorithm http-status-codes resttemplate

我正在使用 RestTemplate 执行 URL,然后打印出它的 http 状态代码。

ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, null, String.class);
System.out.println(response.getStatusCode());

现在我需要做的是,我需要获取每个状态码的计数并将其作为键和值存储在映射中。意思是,每个状态代码出现了多少次。如果 http 200 状态代码出现大约 100 次,那么我想看看它的计数。

我可以通过为每个状态代码设置多个临时变量并相应地继续增加计数来做到这一点。但除此之外还有其他简单的方法吗?

最佳答案

也许使用 map ? 以状态为键,以值为计数器。

Map<String,Integer> counters = new HashMap<>();
...
synchronized (counters) {

  String code = response.getStatusCode();
  Integer counter = counters.get(code);

  if (counter == null) {
    counters.put(code, 1);
  } else {
    counters.put(code, counter + 1)
  }
}

关于java - 如何高效获取每个http状态码的计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25775663/

相关文章:

java - 如何在Java中传递uint?

java - 如何从同一类中的另一个方法调用变量,以及调用该方法?

java - 并行运行操作,同时保留有序的增量输出

error-handling - 服务器的响应缺少必填字段时,是否可以使用状态代码?

http-status-codes - 黑客尝试返回的正确 HTTP 状态

java - Swagger - 呈现已声明异常的响应状态

java - 同步库/第三方类?

python - 计算合并排序中的反转次数

jquery - 使用 "AND"方法设置多项过滤器

javascript - 在 javascript 中执行 Dijkstra 算法时出错