Package org.apache.http.client.utils
Class URLEncodedUtils
- java.lang.Object
-
- org.apache.http.client.utils.URLEncodedUtils
-
public class URLEncodedUtils extends java.lang.ObjectA collection of utilities for encoding URLs.- Since:
- 4.0
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringCONTENT_TYPEThe default HTML form content type.private static java.lang.StringNAME_VALUE_SEPARATORprivate static charPATH_SEPARATORprivate static java.util.BitSetPATH_SEPARATORSprivate static java.util.BitSetPATH_SPECIALprivate static java.util.BitSetPATHSAFECharacters which are safe to use in a path, i.e.private static java.util.BitSetPUNCTPunctuation characters: , ; : $ & + =private static charQP_SEP_Aprivate static charQP_SEP_Sprivate static intRADIXprivate static java.util.BitSetRESERVEDReserved characters, i.e.private static java.util.BitSetUNRESERVEDUnreserved characters, i.e.private static java.util.BitSetURICCharacters which are safe to use in a query or a fragment, i.e.private static java.util.BitSetURLENCODERSafe characters for x-www-form-urlencoded data, as per java.net.URLEncoder and browser behaviour, i.e.private static java.util.BitSetUSERINFOCharacters 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.StringdecodeFormFields(java.lang.String content, java.lang.String charset)Decode/unescape www-url-form-encoded content.private static java.lang.StringdecodeFormFields(java.lang.String content, java.nio.charset.Charset charset)Decode/unescape www-url-form-encoded content.private static java.lang.StringencodeFormFields(java.lang.String content, java.lang.String charset)Encode/escape www-url-form-encoded content.private static java.lang.StringencodeFormFields(java.lang.String content, java.nio.charset.Charset charset)Encode/escape www-url-form-encoded content.(package private) static java.lang.StringencPath(java.lang.String content, java.nio.charset.Charset charset)Encode a String using thePATH_SPECIALset of characters.(package private) static java.lang.StringencUric(java.lang.String content, java.nio.charset.Charset charset)Encode a String using theURICset of characters.(package private) static java.lang.StringencUserInfo(java.lang.String content, java.nio.charset.Charset charset)Encode a String using theUSERINFOset of characters.static java.lang.Stringformat(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-urlencodedlist of parameters in an HTTP PUT or HTTP POST.static java.lang.Stringformat(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-urlencodedlist of parameters in an HTTP PUT or HTTP POST.static java.lang.Stringformat(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-urlencodedlist of parameters in an HTTP PUT or HTTP POST.static java.lang.Stringformat(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-urlencodedlist of parameters in an HTTP PUT or HTTP POST.static java.lang.StringformatSegments(java.lang.Iterable<java.lang.String> segments, java.nio.charset.Charset charset)Returns a string consisting of joint encoded path segments.static java.lang.StringformatSegments(java.lang.String... segments)Returns a string consisting of joint encoded path segments.static booleanisEncoded(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 ofNameValuePairs 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 ofNameValuePairsas 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 ofNameValuePairs URI query parameters.static voidparse(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 voidparse(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 ofNameValuePairsas 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 ofNameValuePairs 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.StringurlDecode(java.lang.String content, java.nio.charset.Charset charset, boolean plusAsBlank)Decode/unescape a portion of a URL, to use with the query part ensureplusAsBlankis true.private static java.lang.StringurlEncode(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
unreservedlist 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.UNRESERVEDplusPUNCTuation
-
PATHSAFE
private static final java.util.BitSet PATHSAFE
Characters which are safe to use in a path, i.e.UNRESERVEDplusPUNCTuation plus / @
-
URIC
private static final java.util.BitSet URIC
Characters which are safe to use in a query or a fragment, i.e.RESERVEDplusUNRESERVED
-
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 ofNameValuePairs 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.IOExceptionReturns a list ofNameValuePairsas 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
NameValuePairas 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=3would add theNameValuePairsa=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=3would add theNameValuePairsa=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 ofNameValuePairs 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 ofNameValuePairsas 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 ofNameValuePairs parameters.- Parameters:
buf- text to parse.charset- Encoding to use when decoding the parameters.separators- element separators.- Returns:
- a list of
NameValuePairas 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-urlencodedlist 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-urlencodedstring
-
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-urlencodedlist 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-urlencodedstring - 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-urlencodedlist 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-urlencodedstring - 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-urlencodedlist 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-urlencodedstring - 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 ensureplusAsBlankis 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
URLENCODERset of characters, rather than theUNRESERVEDset; 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
URLENCODERset of characters, rather than theUNRESERVEDset; 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 theUSERINFOset 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 theURICset 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_SPECIALset 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
-
-