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
`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