![JAR search and dependency download from the Maven repository](/logo.png)
io.lightflame.http.HttpUtils Maven / Gradle / Ivy
The newest version!
package io.lightflame.http;
import java.util.HashMap;
import java.util.Map;
import io.lightflame.routerules.HttpPathRule;
import io.lightflame.routerules.HttpPrefixPathRule;
import io.lightflame.routerules.HttpRuleKind;
import io.lightflame.routerules.RouteRules;
import io.lightflame.routerules.Rule;
import io.netty.handler.codec.http.FullHttpRequest;
/**
* HttpUtils
*/
public class HttpUtils {
static String[] extractSegments(String condURI){
condURI = condURI.startsWith("/") ? condURI.replaceFirst("/", "") : condURI;
return condURI.split("/");
}
private Map makeMapUri(String[] segms){
Map mapUri = new HashMap<>();
for (int i = 0; i < segms.length ; i++){
if (segms[i].startsWith("{")){
String uri = segms[i].substring(1, segms[i].length()-1);
mapUri.put(uri, i);
}
}
return mapUri;
}
HttpUtils() {
}
String extractQueryParam(String uri, String key){
String[] uris = uri.split("\\?",0);
if (uris.length != 2){
return null;
}
for (String keyValue : uris[1].split("\\&")){
if (!keyValue.contains("=")){
continue;
}
String[] keyValSpl = keyValue.split("=");
if (keyValSpl[0].equals(key)){
return keyValSpl[1];
}
}
return "";
}
public String getPathWithoutPrefix(String uri, RouteRules routeRule){
Rule> rule = routeRule.getRule(HttpRuleKind.PREFIX);
if (rule == null){
return "";
}
HttpPrefixPathRule pRule = (HttpPrefixPathRule)rule;
return uri.replace(pRule.getPrefix(), "");
}
// con example: /path/to/my/{url}
// uri example: /path/to/my/url
public String extractUrlParam(String uri, String name, RouteRules routeRule){
Rule rule = routeRule.getRule(HttpRuleKind.PATH);
if (rule == null){
return null;
}
HttpPathRule pRule = (HttpPathRule)rule;
Map mapUri = this.makeMapUri(pRule.getSegments());
Integer pathI = mapUri.get(name);
uri = uri.split("\\?",0)[0];
String[] uriSpl = extractSegments(uri);
if (pathI != null && pathI <= uriSpl.length){
return uriSpl[pathI];
}
return "";
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy