Package org.eclipse.jgit.util
Class HttpSupport
java.lang.Object
org.eclipse.jgit.util.HttpSupport
Extra utilities to support usage of HTTP.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
Thegzip
encoding value forHDR_ACCEPT_ENCODING
.static final String
Thex-gzip
encoding value forHDR_ACCEPT_ENCODING
.static final String
TheAccept
header.static final String
TheAccept-Encoding
header.static final String
TheAccept-Ranges
header.static final String
TheAuthorization
header.static final String
TheCache-Control
header.static final String
TheContent-Encoding
header.static final String
TheContent-Length
header.static final String
TheContent-Range
header.static final String
TheContent-Type
header.static final String
TheCookie
header.static final String
TheDate
header.static final String
TheETag
header.static final String
TheExpires
header.static final String
TheIf-Modified-Since
header.static final String
TheIf-None-Match
header.static final String
TheIf-Range
header.static final String
TheLast-Modified
header.static final String
TheLocation
header.static final String
ThePragma
header.static final String
TheRange
header.static final String
TheServer
header.static final String
TheSet-Cookie
header.static final String
TheSet-Cookie2
header.static final String
TheUser-Agent
header.static final String
TheWWW-Authenticate
header.private static final org.slf4j.Logger
static final String
TheGET
HTTP method.static final String
TheHEAD
HTTP method.static final String
ThePOST
HTTP method.static final String
ThePOST
HTTP method.static final String
The standardtext/plain
MIME type. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic void
configureTLS
(SSLSocket socket) Enables all supported TLS protocol versions on the socket given.static void
Disable SSL and hostname verification for given HTTP connectionstatic void
encode
(StringBuilder urlstr, String key) URL encode a value string into an output buffer.private static String
getProperty
(String property) static Proxy
proxyFor
(ProxySelector proxySelector, URL u) Determine the proxy server (if any) needed to obtain a URL.static int
Get the HTTP response code from the request.static int
Get the HTTP response code from the request.static String
responseHeader
(HttpConnection c, String headerName) Extract a HTTP header from the response.static int
Scan a RFC 7230 token as it appears in HTTP headers.
-
Field Details
-
LOG
private static final org.slf4j.Logger LOG -
METHOD_GET
TheGET
HTTP method.- See Also:
-
METHOD_HEAD
TheHEAD
HTTP method.- Since:
- 4.3
- See Also:
-
METHOD_PUT
ThePOST
HTTP method.- Since:
- 4.3
- See Also:
-
METHOD_POST
ThePOST
HTTP method.- See Also:
-
HDR_CACHE_CONTROL
TheCache-Control
header.- See Also:
-
HDR_PRAGMA
ThePragma
header.- See Also:
-
HDR_USER_AGENT
TheUser-Agent
header.- See Also:
-
HDR_SERVER
TheServer
header.- Since:
- 4.0
- See Also:
-
HDR_DATE
TheDate
header.- See Also:
-
HDR_EXPIRES
TheExpires
header.- See Also:
-
HDR_ETAG
TheETag
header.- See Also:
-
HDR_IF_NONE_MATCH
TheIf-None-Match
header.- See Also:
-
HDR_LAST_MODIFIED
TheLast-Modified
header.- See Also:
-
HDR_IF_MODIFIED_SINCE
TheIf-Modified-Since
header.- See Also:
-
HDR_ACCEPT
TheAccept
header.- See Also:
-
HDR_CONTENT_TYPE
TheContent-Type
header.- See Also:
-
HDR_CONTENT_LENGTH
TheContent-Length
header.- See Also:
-
HDR_CONTENT_ENCODING
TheContent-Encoding
header.- See Also:
-
HDR_CONTENT_RANGE
TheContent-Range
header.- See Also:
-
HDR_ACCEPT_RANGES
TheAccept-Ranges
header.- See Also:
-
HDR_IF_RANGE
TheIf-Range
header.- See Also:
-
HDR_RANGE
TheRange
header.- See Also:
-
HDR_ACCEPT_ENCODING
TheAccept-Encoding
header.- See Also:
-
HDR_LOCATION
TheLocation
header.- Since:
- 4.7
- See Also:
-
ENCODING_GZIP
Thegzip
encoding value forHDR_ACCEPT_ENCODING
.- See Also:
-
ENCODING_X_GZIP
Thex-gzip
encoding value forHDR_ACCEPT_ENCODING
.- Since:
- 4.6
- See Also:
-
TEXT_PLAIN
The standardtext/plain
MIME type.- See Also:
-
HDR_AUTHORIZATION
TheAuthorization
header.- See Also:
-
HDR_WWW_AUTHENTICATE
TheWWW-Authenticate
header.- See Also:
-
HDR_COOKIE
TheCookie
header.- Since:
- 5.4
- See Also:
-
HDR_SET_COOKIE
TheSet-Cookie
header.- Since:
- 5.4
- See Also:
-
HDR_SET_COOKIE2
TheSet-Cookie2
header.- Since:
- 5.4
- See Also:
-
configuredHttpsProtocols
-
-
Constructor Details
-
HttpSupport
private HttpSupport()
-
-
Method Details
-
encode
URL encode a value string into an output buffer.- Parameters:
urlstr
- the output buffer.key
- value which must be encoded to protected special characters.
-
response
Get the HTTP response code from the request.Roughly the same as
c.getResponseCode()
but the ConnectException is translated to be more understandable.- Parameters:
c
- connection the code should be obtained from.- Returns:
- r HTTP status code, usually 200 to indicate success. See
HttpConnection
for other defined constants. - Throws:
IOException
- communications error prevented obtaining the response code.- Since:
- 3.3
-
response
Get the HTTP response code from the request.Roughly the same as
c.getResponseCode()
but the ConnectException is translated to be more understandable.- Parameters:
c
- connection the code should be obtained from.- Returns:
- r HTTP status code, usually 200 to indicate success. See
HttpConnection
for other defined constants. - Throws:
IOException
- communications error prevented obtaining the response code.
-
responseHeader
Extract a HTTP header from the response.- Parameters:
c
- connection the header should be obtained from.headerName
- the header name- Returns:
- the header value
- Throws:
IOException
- communications error prevented obtaining the header.- Since:
- 4.7
-
proxyFor
Determine the proxy server (if any) needed to obtain a URL.- Parameters:
proxySelector
- proxy support for the caller.u
- location of the server caller wants to talk to.- Returns:
- proxy to communicate with the supplied URL.
- Throws:
ConnectException
- the proxy could not be computed as the supplied URL could not be read. This failure should never occur.
-
disableSslVerify
Disable SSL and hostname verification for given HTTP connection- Parameters:
conn
- aHttpConnection
object.- Throws:
IOException
- Since:
- 4.3
-
configureTLS
Enables all supported TLS protocol versions on the socket given. If system property "https.protocols" is set, only protocols specified there are enabled.This is primarily a mechanism to deal with using TLS on IBM JDK. IBM JDK returns sockets that support all TLS protocol versions but have only the one specified in the context enabled. Oracle or OpenJDK return sockets that have all available protocols enabled already, up to the one specified.
SSLContext.getInstance() OpenJDK IDM JDK "TLS" Supported: TLSv1, TLSV1.1, TLSv1.2 (+ TLSv1.3)
Enabled: TLSv1, TLSV1.1, TLSv1.2 (+ TLSv1.3)Supported: TLSv1, TLSV1.1, TLSv1.2
Enabled: TLSv1"TLSv1.2" Supported: TLSv1, TLSV1.1, TLSv1.2
Enabled: TLSv1, TLSV1.1, TLSv1.2Supported: TLSv1, TLSV1.1, TLSv1.2
Enabled: TLSv1.2- Parameters:
socket
- to configure- Since:
- 5.7
- See Also:
-
getConfiguredProtocols
-
getProperty
-
scanToken
Scan a RFC 7230 token as it appears in HTTP headers.- Parameters:
header
- to scan infrom
- index inheader
to start scanning at- Returns:
- the index after the token, that is, on the first non-token
character or
header.length
- Throws:
IndexOutOfBoundsException
- iffrom < 0
orfrom > header.length()
- Since:
- 5.10
- See Also:
-