Browse Source

add StringUtil.findAllMatches and HttpUtil.applyRegexToUrl

tags/2.0.1
Jonathan Cobb 4 years ago
parent
commit
ea72ac4a16
2 changed files with 23 additions and 0 deletions
  1. +15
    -0
      src/main/java/org/cobbzilla/util/http/HttpUtil.java
  2. +8
    -0
      src/main/java/org/cobbzilla/util/string/StringUtil.java

+ 15
- 0
src/main/java/org/cobbzilla/util/http/HttpUtil.java View File

@@ -33,6 +33,7 @@ import java.net.URL;
import java.net.URLDecoder; import java.net.URLDecoder;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map; import java.util.Map;


import static com.google.common.net.HttpHeaders.CONTENT_DISPOSITION; import static com.google.common.net.HttpHeaders.CONTENT_DISPOSITION;
@@ -562,4 +563,18 @@ public class HttpUtil {
String dest = chaseRedirects("http://example.com/?", 10); String dest = chaseRedirects("http://example.com/?", 10);
System.out.println("dest = "+dest); System.out.println("dest = "+dest);
} }

public static List<String> applyRegexToUrl(String url, List<NameAndValue> headers, String regex, Integer group) {
final HttpRequestBean requestBean = new HttpRequestBean(GET, url).setHeaders(headers);
final HttpClientBuilder clientBuilder = requestBean.initClientBuilder(HttpClients.custom().disableRedirectHandling());
try {
@Cleanup final CloseableHttpClient client = clientBuilder.build();
final HttpResponseBean responseBean = HttpUtil.getResponse(requestBean, client);
return StringUtil.findAllMatches(responseBean.getEntityString(), regex, group);
} catch (Exception e) {
log.error("applyRegexToUrl: error: "+shortError(e));
}
return null;
}

} }

+ 8
- 0
src/main/java/org/cobbzilla/util/string/StringUtil.java View File

@@ -558,4 +558,12 @@ public class StringUtil {


public static String sqlEscapeAndQuote(String val) { return "'" + escapeSql(val) + "'"; } public static String sqlEscapeAndQuote(String val) { return "'" + escapeSql(val) + "'"; }


public static List<String> findAllMatches(String val, String regex, Integer group) {
final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(val);
final List<String> matches = new ArrayList<>();
while (matcher.find()) matches.add(group == null ? matcher.group() : matcher.group(group));
return matches;
}

} }

Loading…
Cancel
Save