code: public static <T> String populatedUrl(Map<String, T> map, String key) {
          String url = populatedStringOfType(map, key, "URL");
          UrlValidator.http(url)
                  .orThrow(String.format("Invalid URL value \"%s\" for key \"%s\"", url, key));
          return url;
      }
docs: Validates that the value from {@code map} for the given {@code key} is a
  valid, populated string URL. Returns the value when valid; otherwise,
  throws an {@code IllegalArgumentException}.
  @param map a map
  @param key a key
  @param <T> the type of value
  @return the string value
  @throws java.util.NoSuchElementException if the required value is not
  present
  @throws java.lang.IllegalArgumentException if the value is in valid