Class ConversionUtils
java.lang.Object
org.apache.jmeter.protocol.http.util.ConversionUtils
General purpose conversion utilities related to HTTP/HTML
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic String
encodeWithEntities
(String value, Charset charset) Encodes non-encodable characters as HTML entities like e.g.static String
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
percentEncode
(String value) Encodes strings formultipart/form-data
names and values.static String
removeSlashDotDot
(String url) collapses absolute or relative URLs containing '/..' convertinghttp://host/path1/../path2
tohttp://host/path2
or/one/two/../three
to/one/three
static URI
sanitizeUrl
(URL url) Checks a URL and encodes it if necessary, i.e.
-
Constructor Details
-
ConversionUtils
public ConversionUtils()
-
-
Method Details
-
getEncodingFromContentType
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
-
percentEncode
Encodes strings formultipart/form-data
names and values. The encoding is"
as%22
,CR
as%0D
, andLF
as%0A
. Note:%
is not encoded, so it creates ambiguity which might be resolved in a later specification version.- Parameters:
value
- input value to convert- Returns:
- converted value
- Since:
- 5.6
- See Also:
-
encodeWithEntities
@API(status=EXPERIMENTAL, since="5.6.1") public static String encodeWithEntities(String value, Charset charset) Encodes non-encodable characters as HTML entities like e.g. 😂 for 😂.- Parameters:
value
- value to encodecharset
- charset that will be used for encoding, defaults to UTF-8 if null- Returns:
- input value with non-encodable characters replaced with HTML entities
-
makeRelativeURL
Generate an absolute URL from a possibly relative location, allowing for extraneous leading "../" segments. The JavaURL(URL, String)
constructor does not remove these.- Parameters:
baseURL
- the base URL which is used to resolve missing protocol/host in the locationlocation
- the location, possibly with extraneous leading "../"- Returns:
- URL with extraneous ../ removed
- Throws:
MalformedURLException
- when the givenURL
is malformed- See Also:
-
escapeIllegalURLCharacters
- Parameters:
url
- String Url to escape- Returns:
- String cleaned up url
- Throws:
Exception
- when givenurl
leads to a malformed URL or URI
-
sanitizeUrl
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
collapses absolute or relative URLs containing '/..' convertinghttp://host/path1/../path2
tohttp://host/path2
or/one/two/../three
to/one/three
- Parameters:
url
- in which the '/..'s should be removed- Returns:
- collapsed URL
- See Also:
-