Package org.apache.http.client.utils
Class URLEncodedUtils
- java.lang.Object
-
- org.apache.http.client.utils.URLEncodedUtils
-
public class URLEncodedUtils extends java.lang.Object
A collection of utilities for encoding URLs.- Since:
- 4.0
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
CONTENT_TYPE
The default HTML form content type.private static java.lang.String
NAME_VALUE_SEPARATOR
private static char
PATH_SEPARATOR
private static java.util.BitSet
PATH_SEPARATORS
private static java.util.BitSet
PATH_SPECIAL
private static java.util.BitSet
PATHSAFE
Characters which are safe to use in a path, i.e.private static java.util.BitSet
PUNCT
Punctuation characters: , ; : $ & + =private static char
QP_SEP_A
private static char
QP_SEP_S
private static int
RADIX
private static java.util.BitSet
RESERVED
Reserved characters, i.e.private static java.util.BitSet
UNRESERVED
Unreserved characters, i.e.private static java.util.BitSet
URIC
Characters which are safe to use in a query or a fragment, i.e.private static java.util.BitSet
URLENCODER
Safe characters for x-www-form-urlencoded data, as per java.net.URLEncoder and browser behaviour, i.e.private static java.util.BitSet
USERINFO
Characters which are safe to use in userinfo, i.e.
-
Constructor Summary
Constructors Constructor Description URLEncodedUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description private static java.util.List<org.apache.http.NameValuePair>
createEmptyList()
private static java.lang.String
decodeFormFields(java.lang.String content, java.lang.String charset)
Decode/unescape www-url-form-encoded content.private static java.lang.String
decodeFormFields(java.lang.String content, java.nio.charset.Charset charset)
Decode/unescape www-url-form-encoded content.private static java.lang.String
encodeFormFields(java.lang.String content, java.lang.String charset)
Encode/escape www-url-form-encoded content.private static java.lang.String
encodeFormFields(java.lang.String content, java.nio.charset.Charset charset)
Encode/escape www-url-form-encoded content.(package private) static java.lang.String
encPath(java.lang.String content, java.nio.charset.Charset charset)
Encode a String using thePATH_SPECIAL
set of characters.(package private) static java.lang.String
encUric(java.lang.String content, java.nio.charset.Charset charset)
Encode a String using theURIC
set of characters.(package private) static java.lang.String
encUserInfo(java.lang.String content, java.nio.charset.Charset charset)
Encode a String using theUSERINFO
set of characters.static java.lang.String
format(java.lang.Iterable<? extends org.apache.http.NameValuePair> parameters, char parameterSeparator, java.nio.charset.Charset charset)
Returns a String that is suitable for use as anapplication/x-www-form-urlencoded
list of parameters in an HTTP PUT or HTTP POST.static java.lang.String
format(java.lang.Iterable<? extends org.apache.http.NameValuePair> parameters, java.nio.charset.Charset charset)
Returns a String that is suitable for use as anapplication/x-www-form-urlencoded
list of parameters in an HTTP PUT or HTTP POST.static java.lang.String
format(java.util.List<? extends org.apache.http.NameValuePair> parameters, char parameterSeparator, java.lang.String charset)
Returns a String that is suitable for use as anapplication/x-www-form-urlencoded
list of parameters in an HTTP PUT or HTTP POST.static java.lang.String
format(java.util.List<? extends org.apache.http.NameValuePair> parameters, java.lang.String charset)
Returns a String that is suitable for use as anapplication/x-www-form-urlencoded
list of parameters in an HTTP PUT or HTTP POST.static java.lang.String
formatSegments(java.lang.Iterable<java.lang.String> segments, java.nio.charset.Charset charset)
Returns a string consisting of joint encoded path segments.static java.lang.String
formatSegments(java.lang.String... segments)
Returns a string consisting of joint encoded path segments.static boolean
isEncoded(org.apache.http.HttpEntity entity)
Returns true if the entity's Content-Type header isapplication/x-www-form-urlencoded
.static java.util.List<org.apache.http.NameValuePair>
parse(java.lang.String s, java.nio.charset.Charset charset)
Returns a list ofNameValuePair
s URI query parameters.static java.util.List<org.apache.http.NameValuePair>
parse(java.lang.String s, java.nio.charset.Charset charset, char... separators)
Returns a list ofNameValuePairs
as parsed from the given string using the given character encoding.static java.util.List<org.apache.http.NameValuePair>
parse(java.net.URI uri, java.lang.String charsetName)
Deprecated.4.5 Useparse(URI, Charset)
static java.util.List<org.apache.http.NameValuePair>
parse(java.net.URI uri, java.nio.charset.Charset charset)
Returns a list ofNameValuePair
s URI query parameters.static void
parse(java.util.List<org.apache.http.NameValuePair> parameters, java.util.Scanner scanner, java.lang.String charset)
Deprecated.(4.4) useparse(String, java.nio.charset.Charset)
static void
parse(java.util.List<org.apache.http.NameValuePair> parameters, java.util.Scanner scanner, java.lang.String parameterSepartorPattern, java.lang.String charset)
Deprecated.static java.util.List<org.apache.http.NameValuePair>
parse(org.apache.http.HttpEntity entity)
Returns a list ofNameValuePairs
as parsed from anHttpEntity
.static java.util.List<org.apache.http.NameValuePair>
parse(org.apache.http.util.CharArrayBuffer buf, java.nio.charset.Charset charset, char... separators)
Returns a list ofNameValuePair
s parameters.static java.util.List<java.lang.String>
parsePathSegments(java.lang.CharSequence s)
Returns a list of URI path segments.static java.util.List<java.lang.String>
parsePathSegments(java.lang.CharSequence s, java.nio.charset.Charset charset)
Returns a list of URI path segments.(package private) static java.util.List<java.lang.String>
splitPathSegments(java.lang.CharSequence s)
(package private) static java.util.List<java.lang.String>
splitSegments(java.lang.CharSequence s, java.util.BitSet separators)
private static java.lang.String
urlDecode(java.lang.String content, java.nio.charset.Charset charset, boolean plusAsBlank)
Decode/unescape a portion of a URL, to use with the query part ensureplusAsBlank
is true.private static java.lang.String
urlEncode(java.lang.String content, java.nio.charset.Charset charset, java.util.BitSet safechars, boolean blankAsPlus)
-
-
-
Field Detail
-
CONTENT_TYPE
public static final java.lang.String CONTENT_TYPE
The default HTML form content type.- See Also:
- Constant Field Values
-
QP_SEP_A
private static final char QP_SEP_A
- See Also:
- Constant Field Values
-
QP_SEP_S
private static final char QP_SEP_S
- See Also:
- Constant Field Values
-
NAME_VALUE_SEPARATOR
private static final java.lang.String NAME_VALUE_SEPARATOR
- See Also:
- Constant Field Values
-
PATH_SEPARATOR
private static final char PATH_SEPARATOR
- See Also:
- Constant Field Values
-
PATH_SEPARATORS
private static final java.util.BitSet PATH_SEPARATORS
-
UNRESERVED
private static final java.util.BitSet UNRESERVED
Unreserved characters, i.e. alphanumeric, plus:_ - ! . ~ ' ( ) *
This list is the same as the
unreserved
list in RFC 2396
-
PUNCT
private static final java.util.BitSet PUNCT
Punctuation characters: , ; : $ & + =These are the additional characters allowed by userinfo.
-
USERINFO
private static final java.util.BitSet USERINFO
Characters which are safe to use in userinfo, i.e.UNRESERVED
plusPUNCT
uation
-
PATHSAFE
private static final java.util.BitSet PATHSAFE
Characters which are safe to use in a path, i.e.UNRESERVED
plusPUNCT
uation plus / @
-
URIC
private static final java.util.BitSet URIC
Characters which are safe to use in a query or a fragment, i.e.RESERVED
plusUNRESERVED
-
RESERVED
private static final java.util.BitSet RESERVED
-
URLENCODER
private static final java.util.BitSet URLENCODER
Safe characters for x-www-form-urlencoded data, as per java.net.URLEncoder and browser behaviour, i.e. alphanumeric plus"-", "_", ".", "*"
-
PATH_SPECIAL
private static final java.util.BitSet PATH_SPECIAL
-
RADIX
private static final int RADIX
- See Also:
- Constant Field Values
-
-
Method Detail
-
parse
@Deprecated public static java.util.List<org.apache.http.NameValuePair> parse(java.net.URI uri, java.lang.String charsetName)
Deprecated.4.5 Useparse(URI, Charset)
-
parse
public static java.util.List<org.apache.http.NameValuePair> parse(java.net.URI uri, java.nio.charset.Charset charset)
Returns a list ofNameValuePair
s URI query parameters. By convention,'&'
and';'
are accepted as parameter separators.- Parameters:
uri
- input URI.charset
- parameter charset.- Returns:
- list of query parameters.
- Since:
- 4.5
-
parse
public static java.util.List<org.apache.http.NameValuePair> parse(org.apache.http.HttpEntity entity) throws java.io.IOException
Returns a list ofNameValuePairs
as parsed from anHttpEntity
. The encoding is taken from the entity's Content-Encoding header.This is typically used while parsing an HTTP POST.
- Parameters:
entity
- The entity to parse- Returns:
- a list of
NameValuePair
as built from the URI's query portion. - Throws:
java.io.IOException
- If there was an exception getting the entity's data.
-
isEncoded
public static boolean isEncoded(org.apache.http.HttpEntity entity)
Returns true if the entity's Content-Type header isapplication/x-www-form-urlencoded
.
-
parse
@Deprecated public static void parse(java.util.List<org.apache.http.NameValuePair> parameters, java.util.Scanner scanner, java.lang.String charset)
Deprecated.(4.4) useparse(String, java.nio.charset.Charset)
Adds all parameters within the Scanner to the list ofparameters
, as encoded byencoding
. For example, a scanner containing the stringa=1&b=2&c=3
would add theNameValuePairs
a=1, b=2, and c=3 to the list of parameters. By convention,'&'
and';'
are accepted as parameter separators.- Parameters:
parameters
- List to add parameters to.scanner
- Input that contains the parameters to parse.charset
- Encoding to use when decoding the parameters.
-
parse
@Deprecated public static void parse(java.util.List<org.apache.http.NameValuePair> parameters, java.util.Scanner scanner, java.lang.String parameterSepartorPattern, java.lang.String charset)
Deprecated.Adds all parameters within the Scanner to the list ofparameters
, as encoded byencoding
. For example, a scanner containing the stringa=1&b=2&c=3
would add theNameValuePairs
a=1, b=2, and c=3 to the list of parameters.- Parameters:
parameters
- List to add parameters to.scanner
- Input that contains the parameters to parse.parameterSepartorPattern
- The Pattern string for parameter separators, by convention"[&;]"
charset
- Encoding to use when decoding the parameters.
-
parse
public static java.util.List<org.apache.http.NameValuePair> parse(java.lang.String s, java.nio.charset.Charset charset)
Returns a list ofNameValuePair
s URI query parameters. By convention,'&'
and';'
are accepted as parameter separators.- Parameters:
s
- URI query component.charset
- charset to use when decoding the parameters.- Returns:
- list of query parameters.
- Since:
- 4.2
-
parse
public static java.util.List<org.apache.http.NameValuePair> parse(java.lang.String s, java.nio.charset.Charset charset, char... separators)
Returns a list ofNameValuePairs
as parsed from the given string using the given character encoding.- Parameters:
s
- input text.charset
- parameter charset.separators
- parameter separators.- Returns:
- list of query parameters.
- Since:
- 4.3
-
parse
public static java.util.List<org.apache.http.NameValuePair> parse(org.apache.http.util.CharArrayBuffer buf, java.nio.charset.Charset charset, char... separators)
Returns a list ofNameValuePair
s parameters.- Parameters:
buf
- text to parse.charset
- Encoding to use when decoding the parameters.separators
- element separators.- Returns:
- a list of
NameValuePair
as built from the URI's query portion. - Since:
- 4.4
-
splitSegments
static java.util.List<java.lang.String> splitSegments(java.lang.CharSequence s, java.util.BitSet separators)
-
splitPathSegments
static java.util.List<java.lang.String> splitPathSegments(java.lang.CharSequence s)
-
parsePathSegments
public static java.util.List<java.lang.String> parsePathSegments(java.lang.CharSequence s, java.nio.charset.Charset charset)
Returns a list of URI path segments.- Parameters:
s
- URI path component.charset
- parameter charset.- Returns:
- list of segments.
- Since:
- 4.5
-
parsePathSegments
public static java.util.List<java.lang.String> parsePathSegments(java.lang.CharSequence s)
Returns a list of URI path segments.- Parameters:
s
- URI path component.- Returns:
- list of segments.
- Since:
- 4.5
-
formatSegments
public static java.lang.String formatSegments(java.lang.Iterable<java.lang.String> segments, java.nio.charset.Charset charset)
Returns a string consisting of joint encoded path segments.- Parameters:
segments
- the segments.charset
- parameter charset.- Returns:
- URI path component
- Since:
- 4.5
-
formatSegments
public static java.lang.String formatSegments(java.lang.String... segments)
Returns a string consisting of joint encoded path segments.- Parameters:
segments
- the segments.- Returns:
- URI path component
- Since:
- 4.5
-
format
public static java.lang.String format(java.util.List<? extends org.apache.http.NameValuePair> parameters, java.lang.String charset)
Returns a String that is suitable for use as anapplication/x-www-form-urlencoded
list of parameters in an HTTP PUT or HTTP POST.- Parameters:
parameters
- The parameters to include.charset
- The encoding to use.- Returns:
- An
application/x-www-form-urlencoded
string
-
format
public static java.lang.String format(java.util.List<? extends org.apache.http.NameValuePair> parameters, char parameterSeparator, java.lang.String charset)
Returns a String that is suitable for use as anapplication/x-www-form-urlencoded
list of parameters in an HTTP PUT or HTTP POST.- Parameters:
parameters
- The parameters to include.parameterSeparator
- The parameter separator, by convention,'&'
or';'
.charset
- The encoding to use.- Returns:
- An
application/x-www-form-urlencoded
string - Since:
- 4.3
-
format
public static java.lang.String format(java.lang.Iterable<? extends org.apache.http.NameValuePair> parameters, java.nio.charset.Charset charset)
Returns a String that is suitable for use as anapplication/x-www-form-urlencoded
list of parameters in an HTTP PUT or HTTP POST.- Parameters:
parameters
- The parameters to include.charset
- The encoding to use.- Returns:
- An
application/x-www-form-urlencoded
string - Since:
- 4.2
-
format
public static java.lang.String format(java.lang.Iterable<? extends org.apache.http.NameValuePair> parameters, char parameterSeparator, java.nio.charset.Charset charset)
Returns a String that is suitable for use as anapplication/x-www-form-urlencoded
list of parameters in an HTTP PUT or HTTP POST.- Parameters:
parameters
- The parameters to include.parameterSeparator
- The parameter separator, by convention,'&'
or';'
.charset
- The encoding to use.- Returns:
- An
application/x-www-form-urlencoded
string - Since:
- 4.3
-
createEmptyList
private static java.util.List<org.apache.http.NameValuePair> createEmptyList()
-
urlEncode
private static java.lang.String urlEncode(java.lang.String content, java.nio.charset.Charset charset, java.util.BitSet safechars, boolean blankAsPlus)
-
urlDecode
private static java.lang.String urlDecode(java.lang.String content, java.nio.charset.Charset charset, boolean plusAsBlank)
Decode/unescape a portion of a URL, to use with the query part ensureplusAsBlank
is true.- Parameters:
content
- the portion to decodecharset
- the charset to useplusAsBlank
- iftrue
, then convert '+' to space (e.g. for www-url-form-encoded content), otherwise leave as is.- Returns:
- encoded string
-
decodeFormFields
private static java.lang.String decodeFormFields(java.lang.String content, java.lang.String charset)
Decode/unescape www-url-form-encoded content.- Parameters:
content
- the content to decode, will decode '+' as spacecharset
- the charset to use- Returns:
- encoded string
-
decodeFormFields
private static java.lang.String decodeFormFields(java.lang.String content, java.nio.charset.Charset charset)
Decode/unescape www-url-form-encoded content.- Parameters:
content
- the content to decode, will decode '+' as spacecharset
- the charset to use- Returns:
- encoded string
-
encodeFormFields
private static java.lang.String encodeFormFields(java.lang.String content, java.lang.String charset)
Encode/escape www-url-form-encoded content.Uses the
URLENCODER
set of characters, rather than theUNRESERVED
set; this is for compatibilty with previous releases, URLEncoder.encode() and most browsers.- Parameters:
content
- the content to encode, will convert space to '+'charset
- the charset to use- Returns:
- encoded string
-
encodeFormFields
private static java.lang.String encodeFormFields(java.lang.String content, java.nio.charset.Charset charset)
Encode/escape www-url-form-encoded content.Uses the
URLENCODER
set of characters, rather than theUNRESERVED
set; this is for compatibilty with previous releases, URLEncoder.encode() and most browsers.- Parameters:
content
- the content to encode, will convert space to '+'charset
- the charset to use- Returns:
- encoded string
-
encUserInfo
static java.lang.String encUserInfo(java.lang.String content, java.nio.charset.Charset charset)
Encode a String using theUSERINFO
set of characters.Used by URIBuilder to encode the userinfo segment.
- Parameters:
content
- the string to encode, does not convert space to '+'charset
- the charset to use- Returns:
- the encoded string
-
encUric
static java.lang.String encUric(java.lang.String content, java.nio.charset.Charset charset)
Encode a String using theURIC
set of characters.Used by URIBuilder to encode the query and fragment segments.
- Parameters:
content
- the string to encode, does not convert space to '+'charset
- the charset to use- Returns:
- the encoded string
-
encPath
static java.lang.String encPath(java.lang.String content, java.nio.charset.Charset charset)
Encode a String using thePATH_SPECIAL
set of characters.Used by URIBuilder to encode path segments.
- Parameters:
content
- the string to encode, does not convert space to '+'charset
- the charset to use- Returns:
- the encoded string
-
-