public static final class HttpUrl.Builder
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
(package private) java.lang.String |
encodedFragment |
(package private) java.lang.String |
encodedPassword |
(package private) java.util.List<java.lang.String> |
encodedPathSegments |
(package private) java.util.List<java.lang.String> |
encodedQueryNamesAndValues |
(package private) java.lang.String |
encodedUsername |
(package private) java.lang.String |
host |
(package private) static java.lang.String |
INVALID_HOST |
(package private) int |
port |
(package private) java.lang.String |
scheme |
Constructor and Description |
---|
Builder() |
Modifier and Type | Method and Description |
---|---|
HttpUrl.Builder |
addEncodedPathSegment(java.lang.String encodedPathSegment) |
HttpUrl.Builder |
addEncodedPathSegments(java.lang.String encodedPathSegments)
Adds a set of encoded path segments separated by a slash (either
\ or / ). |
HttpUrl.Builder |
addEncodedQueryParameter(java.lang.String encodedName,
java.lang.String encodedValue)
Adds the pre-encoded query parameter to this URL's query string.
|
HttpUrl.Builder |
addPathSegment(java.lang.String pathSegment) |
HttpUrl.Builder |
addPathSegments(java.lang.String pathSegments)
Adds a set of path segments separated by a slash (either
\ or / ). |
private HttpUrl.Builder |
addPathSegments(java.lang.String pathSegments,
boolean alreadyEncoded) |
HttpUrl.Builder |
addQueryParameter(java.lang.String name,
java.lang.String value)
Encodes the query parameter using UTF-8 and adds it to this URL's query string.
|
HttpUrl |
build() |
private static java.lang.String |
canonicalizeHost(java.lang.String input,
int pos,
int limit) |
(package private) int |
effectivePort() |
HttpUrl.Builder |
encodedFragment(java.lang.String encodedFragment) |
HttpUrl.Builder |
encodedPassword(java.lang.String encodedPassword) |
HttpUrl.Builder |
encodedPath(java.lang.String encodedPath) |
HttpUrl.Builder |
encodedQuery(java.lang.String encodedQuery) |
HttpUrl.Builder |
encodedUsername(java.lang.String encodedUsername) |
HttpUrl.Builder |
fragment(java.lang.String fragment) |
HttpUrl.Builder |
host(java.lang.String host) |
private boolean |
isDot(java.lang.String input) |
private boolean |
isDotDot(java.lang.String input) |
(package private) HttpUrl.Builder |
parse(HttpUrl base,
java.lang.String input) |
private static int |
parsePort(java.lang.String input,
int pos,
int limit) |
HttpUrl.Builder |
password(java.lang.String password) |
private void |
pop()
Removes a path segment.
|
HttpUrl.Builder |
port(int port) |
private static int |
portColonOffset(java.lang.String input,
int pos,
int limit)
Finds the first ':' in
input , skipping characters between square braces "[...]". |
private void |
push(java.lang.String input,
int pos,
int limit,
boolean addTrailingSlash,
boolean alreadyEncoded)
Adds a path segment.
|
HttpUrl.Builder |
query(java.lang.String query) |
(package private) HttpUrl.Builder |
reencodeForUri()
Re-encodes the components of this URL so that it satisfies (obsolete) RFC 2396, which is
particularly strict for certain components.
|
private void |
removeAllCanonicalQueryParameters(java.lang.String canonicalName) |
HttpUrl.Builder |
removeAllEncodedQueryParameters(java.lang.String encodedName) |
HttpUrl.Builder |
removeAllQueryParameters(java.lang.String name) |
HttpUrl.Builder |
removePathSegment(int index) |
private void |
resolvePath(java.lang.String input,
int pos,
int limit) |
HttpUrl.Builder |
scheme(java.lang.String scheme) |
private static int |
schemeDelimiterOffset(java.lang.String input,
int pos,
int limit)
Returns the index of the ':' in
input that is after scheme characters. |
HttpUrl.Builder |
setEncodedPathSegment(int index,
java.lang.String encodedPathSegment) |
HttpUrl.Builder |
setEncodedQueryParameter(java.lang.String encodedName,
java.lang.String encodedValue) |
HttpUrl.Builder |
setPathSegment(int index,
java.lang.String pathSegment) |
HttpUrl.Builder |
setQueryParameter(java.lang.String name,
java.lang.String value) |
private static int |
slashCount(java.lang.String input,
int pos,
int limit)
Returns the number of '/' and '\' slashes in
input , starting at pos . |
java.lang.String |
toString() |
HttpUrl.Builder |
username(java.lang.String username) |
@Nullable java.lang.String scheme
java.lang.String encodedUsername
java.lang.String encodedPassword
@Nullable java.lang.String host
int port
final java.util.List<java.lang.String> encodedPathSegments
@Nullable java.util.List<java.lang.String> encodedQueryNamesAndValues
@Nullable java.lang.String encodedFragment
static final java.lang.String INVALID_HOST
public HttpUrl.Builder scheme(java.lang.String scheme)
public HttpUrl.Builder username(java.lang.String username)
public HttpUrl.Builder encodedUsername(java.lang.String encodedUsername)
public HttpUrl.Builder password(java.lang.String password)
public HttpUrl.Builder encodedPassword(java.lang.String encodedPassword)
public HttpUrl.Builder host(java.lang.String host)
host
- either a regular hostname, International Domain Name, IPv4 address, or IPv6
address.public HttpUrl.Builder port(int port)
int effectivePort()
public HttpUrl.Builder addPathSegment(java.lang.String pathSegment)
public HttpUrl.Builder addPathSegments(java.lang.String pathSegments)
\
or /
). If
pathSegments
starts with a slash, the resulting URL will have empty path segment.public HttpUrl.Builder addEncodedPathSegment(java.lang.String encodedPathSegment)
public HttpUrl.Builder addEncodedPathSegments(java.lang.String encodedPathSegments)
\
or /
). If
encodedPathSegments
starts with a slash, the resulting URL will have empty path
segment.private HttpUrl.Builder addPathSegments(java.lang.String pathSegments, boolean alreadyEncoded)
public HttpUrl.Builder setPathSegment(int index, java.lang.String pathSegment)
public HttpUrl.Builder setEncodedPathSegment(int index, java.lang.String encodedPathSegment)
public HttpUrl.Builder removePathSegment(int index)
public HttpUrl.Builder encodedPath(java.lang.String encodedPath)
public HttpUrl.Builder query(@Nullable java.lang.String query)
public HttpUrl.Builder encodedQuery(@Nullable java.lang.String encodedQuery)
public HttpUrl.Builder addQueryParameter(java.lang.String name, @Nullable java.lang.String value)
public HttpUrl.Builder addEncodedQueryParameter(java.lang.String encodedName, @Nullable java.lang.String encodedValue)
public HttpUrl.Builder setQueryParameter(java.lang.String name, @Nullable java.lang.String value)
public HttpUrl.Builder setEncodedQueryParameter(java.lang.String encodedName, @Nullable java.lang.String encodedValue)
public HttpUrl.Builder removeAllQueryParameters(java.lang.String name)
public HttpUrl.Builder removeAllEncodedQueryParameters(java.lang.String encodedName)
private void removeAllCanonicalQueryParameters(java.lang.String canonicalName)
public HttpUrl.Builder fragment(@Nullable java.lang.String fragment)
public HttpUrl.Builder encodedFragment(@Nullable java.lang.String encodedFragment)
HttpUrl.Builder reencodeForUri()
public HttpUrl build()
public java.lang.String toString()
toString
in class java.lang.Object
HttpUrl.Builder parse(@Nullable HttpUrl base, java.lang.String input)
private void resolvePath(java.lang.String input, int pos, int limit)
private void push(java.lang.String input, int pos, int limit, boolean addTrailingSlash, boolean alreadyEncoded)
private boolean isDot(java.lang.String input)
private boolean isDotDot(java.lang.String input)
private void pop()
Popping "/a/b/c/" yields "/a/b/". In this case the list of path segments goes from ["a", "b", "c", ""] to ["a", "b", ""].
Popping "/a/b/c" also yields "/a/b/". The list of path segments goes from ["a", "b", "c"] to ["a", "b", ""].
private static int schemeDelimiterOffset(java.lang.String input, int pos, int limit)
input
that is after scheme characters. Returns -1 if
input
does not have a scheme that starts at pos
.private static int slashCount(java.lang.String input, int pos, int limit)
input
, starting at pos
.private static int portColonOffset(java.lang.String input, int pos, int limit)
input
, skipping characters between square braces "[...]".@Nullable private static java.lang.String canonicalizeHost(java.lang.String input, int pos, int limit)
private static int parsePort(java.lang.String input, int pos, int limit)