org.apache.jmeter.protocol.http.util

## Class ConversionUtils

- java.lang.Object
- - org.apache.jmeter.protocol.http.util.ConversionUtils

-     public class ConversionUtils
      extends Object

  General purpose conversion utilities related to HTTP/HTML

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ConversionUtils()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static String` | `escapeIllegalURLCharacters(String url)`
    `static String` | `getEncodingFromContentType(String contentType)` Extract the encoding (charset) from the Content-Type, e.g.
    `static URL` | `makeRelativeURL(URL baseURL, String location)` Generate an absolute URL from a possibly relative location, allowing for extraneous leading "../" segments.
    `static String` | `removeSlashDotDot(String url)` collapses absolute or relative URLs containing '/..' converting `http://host/path1/../path2` to `http://host/path2` or `/one/two/../three` to `/one/three`
    `static URI` | `sanitizeUrl(URL url)` Checks a URL and encodes it if necessary, i.e.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ConversionUtils

          public ConversionUtils()

  - ### Method Detail

    - #### getEncodingFromContentType

          public static String getEncodingFromContentType(String contentType)

      Extract the encoding (charset) from the Content-Type, e.g. "text/html; charset=utf-8".
      Parameters:
        `contentType` - string from which the encoding should be extracted
      Returns:
        the charset encoding - or `null`, if none was found or the charset is not supported
      Throws:
        `IllegalCharsetNameException` - if the found charset is not supported

    - #### makeRelativeURL

          public static URL makeRelativeURL(URL baseURL,
                                            String location)
                                     throws MalformedURLException

      Generate an absolute URL from a possibly relative location, allowing for extraneous leading "../" segments. The Java `URL.URL(URL, String)` constructor does not remove these.
      Parameters:
        `baseURL` - the base URL which is used to resolve missing protocol/host in the location
        `location` - the location, possibly with extraneous leading "../"
      Returns:
        URL with extraneous ../ removed
      Throws:
        `MalformedURLException` - when the given `URL` is malformed
      See Also:
        Bug 46690 - handling of 302 redirects with invalid relative paths

    - #### escapeIllegalURLCharacters

          public static String escapeIllegalURLCharacters(String url)
                                                   throws Exception

      Parameters:
        `url` - String Url to escape
      Returns:
        String cleaned up url
      Throws:
        `Exception` - when given `url` leads to a malformed URL or URI

    - #### sanitizeUrl

          public static URI sanitizeUrl(URL url)
                                 throws URISyntaxException

      Checks a URL and encodes it if necessary, i.e. if it is not currently correctly encoded. Warning: it may not work on all unencoded URLs.
      Parameters:
        `url` - non-encoded URL
      Returns:
        URI which has been encoded as necessary
      Throws:
        `URISyntaxException` - if parts of the url form a non valid URI

    - #### removeSlashDotDot

          public static String removeSlashDotDot(String url)

      collapses absolute or relative URLs containing '/..' converting `http://host/path1/../path2` to `http://host/path2` or `/one/two/../three` to `/one/three`
      Parameters:
        `url` - in which the '/..'s should be removed
      Returns:
        collapsed URL
      See Also:
        Bug 49083 - collapse /.. in redirect URLs

Copyright © 1998-2022 Apache Software Foundation. All Rights Reserved.