public static String computeRealmURI(Uri uri, boolean useAbsoluteURI, boolean omitQuery) {
   if (useAbsoluteURI) {
     return omitQuery && MiscUtils.isNonEmpty(uri.getQuery())
         ? uri.withNewQuery(null).toUrl()
         : uri.toUrl();
   } else {
     String path = getNonEmptyPath(uri);
     return omitQuery || !MiscUtils.isNonEmpty(uri.getQuery())
         ? path
         : path + "?" + uri.getQuery();
   }
 }
  public String toRelativeUrl() {
    StringBuilder sb = StringUtils.stringBuilder();
    if (MiscUtils.isNonEmpty(path)) sb.append(path);
    else sb.append('/');
    if (query != null) sb.append('?').append(query);

    return sb.toString();
  }