Skip to content

Commit

Permalink
refactor: startLine 객체 내 queryString을 queryParams로 수정
Browse files Browse the repository at this point in the history
  • Loading branch information
MoonJeWoong committed Sep 12, 2023
1 parent 681e7fb commit af65667
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ public class Http11Request {
private static final String FORM_KEY_VALUE_DELIMITER = "=";

private StartLine startLine;
private Map<String, String> queryParams = new HashMap<>();
private Map<HttpHeader, String> headers = new HashMap<>();
private final Cookies cookies = new Cookies();
private Map<String, String> parsedBody = null;
Expand All @@ -31,10 +30,6 @@ public Http11Request(InputStream inputStream) throws IOException {
this.startLine = new StartLine(bufferedReader.readLine());
extractHeaders(bufferedReader);

if (startLine.hasQueryString()) {
parseMultipleValues(queryParams,
startLine.getQueryString(), "&", "=");
}
if (headers.containsKey(HttpHeader.COOKIE)) {
cookies.parseCookieHeaders(headers.get(HttpHeader.COOKIE));
}
Expand All @@ -58,7 +53,7 @@ private void extractHeader(String line) {
}
}

private void parseBody(BufferedReader bufferedReader) throws IOException{
private void parseBody(BufferedReader bufferedReader) throws IOException {
parsedBody = new HashMap<>();
String requestBody = extractRequestBody(bufferedReader);
parseMultipleValues(parsedBody,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
package nextstep.org.apache.coyote.http11.request;

import static nextstep.org.apache.coyote.http11.HttpUtil.parseMultipleValues;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;
import java.util.Map;

public class StartLine {

Expand All @@ -11,10 +14,12 @@ public class StartLine {
private static final int REQUEST_TARGET_INDEX = 1;
private static final int HTTP_VERSION_INDEX = 2;
private static final String QUERY_PARAM_DELIMITER = "?";
private static final String VALUES_DELIMITER = "&";
private static final String KEY_VALUE_DELIMITER = "=";

private String httpMethod;
private String path;
private String queryString = null;
private Map<String, String> queryParams = new HashMap<>();
private String httpVersion;

public StartLine(String startLine) {
Expand All @@ -29,14 +34,11 @@ private void parsePath(List<String> parsed) {
if (path.contains(QUERY_PARAM_DELIMITER)) {
int queryParamIndex = path.indexOf(QUERY_PARAM_DELIMITER);
path = parsed.get(REQUEST_TARGET_INDEX).substring(0, queryParamIndex);
queryString = parsed.get(queryParamIndex + 1);
String queryString = parsed.get(queryParamIndex + 1);
parseMultipleValues(queryParams, queryString, VALUES_DELIMITER, KEY_VALUE_DELIMITER);
}
}

public boolean hasQueryString() {
return Objects.nonNull(queryString);
}

public String getHttpMethod() {
return httpMethod;
}
Expand All @@ -45,7 +47,7 @@ public String getPath() {
return path;
}

public String getQueryString() {
return queryString;
public Map<String, String> getQueryParams() {
return new HashMap<>(queryParams);
}
}

0 comments on commit af65667

Please sign in to comment.