34public record
HttpResponseSpec(
int statusCode, Map<String, List<String>> headers,
byte[] body) {
37 headers = normalizeHeaders(headers);
38 body = body ==
null ?
new byte[0] : body.clone();
41 public boolean isSuccess() {
42 return statusCode >= 200 && statusCode < 300;
45 public String bodyAsString() {
46 return new String(body, StandardCharsets.UTF_8);
49 private static Map<String, List<String>> normalizeHeaders(
final Map<String, List<String>> raw) {
50 if (raw ==
null || raw.isEmpty()) {
53 final var copy =
new LinkedHashMap<String, List<String>>();
54 for (
final var entry : raw.entrySet()) {
55 copy.put(entry.getKey(), List.copyOf(entry.getValue()));
57 return Map.copyOf(copy);