Skip to content

Commit 37fe80a

Browse files
committed
Changed hashmap to Treemap per code rabbits suggestion
1 parent 016b324 commit 37fe80a

1 file changed

Lines changed: 8 additions & 24 deletions

File tree

src/main/java/org/example/http/HttpResponseBuilder.java

Lines changed: 8 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@
33
import java.nio.charset.StandardCharsets;
44
import java.util.LinkedHashMap;
55
import java.util.Map;
6+
import java.util.TreeMap;
67

78
public class HttpResponseBuilder {
89

910
private static final String PROTOCOL = "HTTP/1.1";
1011
private int statusCode = 200;
1112
private String body = "";
12-
private Map<String, String> headers = new LinkedHashMap<>();
13+
private Map<String, String> headers = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
1314

1415
private static final String CRLF = "\r\n";
1516

@@ -41,34 +42,17 @@ public void setContentTypeFromFilename(String filename) {
4142
404, "Not Found",
4243
500, "Internal Server Error");
4344

44-
public String build() {
45+
public String build(){
4546
StringBuilder sb = new StringBuilder();
4647
String reason = REASON_PHRASES.getOrDefault(statusCode, "OK");
47-
48-
// Status line
4948
sb.append(PROTOCOL).append(" ").append(statusCode).append(" ").append(reason).append(CRLF);
50-
51-
// User-defined headers
52-
headers.forEach((k, v) -> sb.append(k).append(": ").append(v).append(CRLF));
53-
54-
// Only append Content-Length if not already set
55-
if (!headers.containsKey("Content-Length")) {
56-
sb.append("Content-Length: ")
57-
.append(body.getBytes(StandardCharsets.UTF_8).length)
58-
.append(CRLF);
59-
}
60-
61-
// Only append Connection if not already set
62-
if (!headers.containsKey("Connection")) {
63-
sb.append("Connection: close").append(CRLF);
64-
}
65-
66-
// Blank line before body
49+
headers.forEach((k,v) -> sb.append(k).append(": ").append(v).append(CRLF));
50+
sb.append("Content-Length: ")
51+
.append(body.getBytes(StandardCharsets.UTF_8).length);
52+
sb.append(CRLF);
53+
sb.append("Connection: close").append(CRLF);
6754
sb.append(CRLF);
68-
69-
// Body
7055
sb.append(body);
71-
7256
return sb.toString();
7357
}
7458
}

0 commit comments

Comments
 (0)