query param encoding, decoding 처리
This commit is contained in:
@@ -2,7 +2,6 @@ package com.eactive.testmaster.api.dto;
|
|||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URLDecoder;
|
import java.net.URLDecoder;
|
||||||
import java.net.URLEncoder;
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -13,7 +12,7 @@ public class MockRequest {
|
|||||||
|
|
||||||
public static Map<String, String> parseQueryString(HttpServletRequest request) {
|
public static Map<String, String> parseQueryString(HttpServletRequest request) {
|
||||||
Map<String, String> queryParams = new HashMap<>();
|
Map<String, String> queryParams = new HashMap<>();
|
||||||
String queryString = URLDecoder.decode(request.getQueryString());
|
String queryString = request.getQueryString()!=null?URLDecoder.decode(request.getQueryString()) : null;
|
||||||
if (queryString != null) {
|
if (queryString != null) {
|
||||||
String[] queryParamsArr = queryString.split("&");
|
String[] queryParamsArr = queryString.split("&");
|
||||||
for (String queryParam : queryParamsArr) {
|
for (String queryParam : queryParamsArr) {
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ import io.netty.handler.ssl.SslContext;
|
|||||||
import io.netty.handler.ssl.SslContextBuilder;
|
import io.netty.handler.ssl.SslContextBuilder;
|
||||||
import io.netty.handler.ssl.util.InsecureTrustManagerFactory;
|
import io.netty.handler.ssl.util.InsecureTrustManagerFactory;
|
||||||
import io.netty.util.CharsetUtil;
|
import io.netty.util.CharsetUtil;
|
||||||
|
import java.net.URLEncoder;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
import javax.net.ssl.SSLException;
|
import javax.net.ssl.SSLException;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
@@ -84,8 +85,18 @@ public class NettyHttpApiClient implements ApiClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
String fullPath = server.getBasePath() + apiRequest.getPath();
|
String fullPath = server.getBasePath() + apiRequest.getPath();
|
||||||
|
String encodedPath = fullPath;
|
||||||
|
|
||||||
HttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.valueOf(apiRequest.getMethod()), fullPath, content);
|
// Check if the fullPath contains query parameters
|
||||||
|
int queryIndex = fullPath.indexOf('?');
|
||||||
|
if (queryIndex != -1) {
|
||||||
|
String path = fullPath.substring(0, queryIndex);
|
||||||
|
String queryParams = fullPath.substring(queryIndex + 1);
|
||||||
|
String encodedQueryParams = URLEncoder.encode(queryParams);
|
||||||
|
encodedPath = path + "?" + encodedQueryParams;
|
||||||
|
}
|
||||||
|
|
||||||
|
HttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.valueOf(apiRequest.getMethod()), encodedPath, content);
|
||||||
|
|
||||||
request.headers().set("Host", host);
|
request.headers().set("Host", host);
|
||||||
request.headers().set("Connection", HttpHeaderValues.CLOSE);
|
request.headers().set("Connection", HttpHeaderValues.CLOSE);
|
||||||
|
|||||||
Reference in New Issue
Block a user