Package com.pnfsoftware.jeb.util.net
Class Net
java.lang.Object
com.pnfsoftware.jeb.util.net.Net
- All Implemented Interfaces:
INet
A network object used to download from and upload to http/https URLs, with socks and http proxy
support.
-
Constructor Summary
ConstructorsConstructorDescriptionNet()Create a standard Net object, using global proxy settings set usingsetGlobalProxyInformation(NetProxyInfo).Copy constructor. -
Method Summary
Modifier and TypeMethodDescriptionokhttp3.OkHttpClientbuildClient(String url) okhttp3.OkHttpClientbuildClient(String url, IProgressCallback progressCallback) okhttp3.OkHttpClientbuildClient(String url, IProgressCallback progressCallback, int[] timeouts) static longconvertHttpDateToEpoch(String dateString) An HTTP Date.longdownloadBinary(File dstfile, String url, Map<String, String> urlParams, Map<String, String> serverHeaders, IProgressCallback progressCallback) Download a binary and dump it to disk.Duplicate this object to perform safe parameter update.intstatic NetProxyInfoGet proxy information used by this instance.intintstatic booleanDetermine if the system appears to be connected to the Internet.static booleanDetermine if the system offers at least one active non-loopback network interface.Perform an http POST request to send a simple form.post(String url, Map<String, String> urlParams, Map<String, String> bodyParams, Map<String, String> serverHeaders) Perform an http POST request to send a simple form.postMultipart(String url, Map<String, String> formParams, Map<String, FormFileEntry> formFiles) Perform an http POST request to send a multipart form.postMultipart(String url, Map<String, String> formParams, Map<String, FormFileEntry> formFiles, Map<String, String> serverHeaders) Perform an http POST request to send a form using themultipart/form-dataencoding.Perform an http GET request.Perform an http GET request.Perform an http GET request.byte[]queryBinary(String url) Perform an http GET request.byte[]queryBinary(String url, Map<String, String> parameters) Perform an http GET request.byte[]Perform an http GET request.byte[]queryBinary(String url, Map<String, String> urlParams, Map<String, String> serverHeaders, IProgressCallback progressCallback) Perform an http GET request.voidsetConnectTimeout(int timeout) static voidsetGlobalProxyInformation(NetProxyInfo proxyinfo) Set global proxy information used by newly built clients.voidsetReadTimeout(int timeout) voidvoidsetUserAgent(String userAgent) voidsetWriteTimeout(int timeout)
-
Constructor Details
-
Net
public Net()Create a standard Net object, using global proxy settings set usingsetGlobalProxyInformation(NetProxyInfo). The user-agent is set to "PNF Software UP"; the timeouts are set to 30 seconds for connect, 120 seconds for read, 60 seconds for write; redirects are followed. -
Net
Copy constructor.- Parameters:
net0- an existing net object
-
-
Method Details
-
setGlobalProxyInformation
Set global proxy information used by newly built clients.- Parameters:
proxyinfo- proxy information, or null for a direct connection
-
getGlobalProxyInformation
- Returns:
- optional global proxy information
-
duplicate
Description copied from interface:INetDuplicate this object to perform safe parameter update. -
getProxyInformation
Get proxy information used by this instance.- Returns:
- optional proxy information
-
setUserAgent
- Specified by:
setUserAgentin interfaceINet- Parameters:
userAgent- a user-agent
-
getUserAgent
- Specified by:
getUserAgentin interfaceINet- Returns:
- the user-agent
-
setConnectTimeout
public void setConnectTimeout(int timeout) - Specified by:
setConnectTimeoutin interfaceINet- Parameters:
timeout- in milliseconds
-
getConnectTimeout
public int getConnectTimeout()- Specified by:
getConnectTimeoutin interfaceINet- Returns:
- timeout in milliseconds
-
setReadTimeout
public void setReadTimeout(int timeout) - Specified by:
setReadTimeoutin interfaceINet- Parameters:
timeout- timeout in milliseconds
-
getReadTimeout
public int getReadTimeout()- Specified by:
getReadTimeoutin interfaceINet- Returns:
- timeout in milliseconds
-
setWriteTimeout
public void setWriteTimeout(int timeout) - Specified by:
setWriteTimeoutin interfaceINet- Parameters:
timeout- timeout in milliseconds
-
getWriteTimeout
public int getWriteTimeout()- Specified by:
getWriteTimeoutin interfaceINet- Returns:
- timeout in milliseconds
-
getSecureSocketInfo
- Specified by:
getSecureSocketInfoin interfaceINet- Returns:
- optional secure socket customization information
-
setSecureSocketInfo
- Specified by:
setSecureSocketInfoin interfaceINet- Parameters:
info- optional secure socket customization information
-
buildClient
- Parameters:
url- optional but recommended if a proxy is in place- Returns:
- an HTTP client configured with this instance's settings
-
buildClient
- Parameters:
url- optional but recommended if a proxy is in placeprogressCallback- optional- Returns:
- an HTTP client configured with this instance's settings
-
buildClient
public okhttp3.OkHttpClient buildClient(String url, IProgressCallback progressCallback, int[] timeouts) - Parameters:
url- optional but recommended if a proxy is in placeprogressCallback- optionaltimeouts- optional (if null, the object's timeouts are used); else, a 3-element array of timeouts in ms: connect, read, write; when a timeout entry is specified, the value 0 means infinite (do not time-out), and a negative value means use this object's timeout- Returns:
- an HTTP client configured with this instance's settings
-
post
public String post(String url, Map<String, String> urlParams, Map<String, throws IOExceptionString> bodyParams, Map<String, String> serverHeaders) Description copied from interface:INetPerform an http POST request to send a simple form.- Specified by:
postin interfaceINet- Parameters:
url- url with optional parametersurlParams- optional additional url parametersbodyParams- request content parametersserverHeaders- optional map whose keys indicate response headers to retrieve- Returns:
- the server response
- Throws:
IOException- on error
-
post
public String post(String url, Map<String, String> urlParams, Map<String, throws IOExceptionString> bodyParams) Description copied from interface:INetPerform an http POST request to send a simple form.- Specified by:
postin interfaceINet- Parameters:
url- url with optional parametersurlParams- optional additional url parametersbodyParams- request content parameters- Returns:
- the server response
- Throws:
IOException- on error
-
postMultipart
public String postMultipart(String url, Map<String, String> formParams, Map<String, throws IOExceptionFormFileEntry> formFiles, Map<String, String> serverHeaders) Description copied from interface:INetPerform an http POST request to send a form using themultipart/form-dataencoding.- Specified by:
postMultipartin interfaceINet- Parameters:
url- url with optional parametersformParams- optional request content parametersformFiles- optional request content filesserverHeaders- optional map whose keys indicate response headers to retrieve- Returns:
- the server response
- Throws:
IOException- on error
-
postMultipart
public String postMultipart(String url, Map<String, String> formParams, Map<String, throws IOExceptionFormFileEntry> formFiles) Description copied from interface:INetPerform an http POST request to send a multipart form.- Specified by:
postMultipartin interfaceINet- Parameters:
url- url with optional parametersformParams- optional request content parametersformFiles- optional request content files- Returns:
- the server response
- Throws:
IOException- on error
-
query
public String query(String url, Map<String, String> urlParams, Map<String, throws IOExceptionString> serverHeaders) Description copied from interface:INetPerform an http GET request.- Specified by:
queryin interfaceINet- Parameters:
url- url with optional parametersurlParams- optional additional url parametersserverHeaders- optional map whose keys indicate response headers to retrieve- Returns:
- the server response
- Throws:
IOException- on error
-
query
Description copied from interface:INetPerform an http GET request.- Specified by:
queryin interfaceINet- Parameters:
url- url with optional parametersparameters- optional additional url parameters- Returns:
- the server response
- Throws:
IOException- on error
-
query
Description copied from interface:INetPerform an http GET request.- Specified by:
queryin interfaceINet- Parameters:
url- url with optional parameters- Returns:
- the server response
- Throws:
IOException- on error
-
queryBinary
public byte[] queryBinary(String url, Map<String, String> urlParams, Map<String, throws IOExceptionString> serverHeaders, IProgressCallback progressCallback) Description copied from interface:INetPerform an http GET request.- Specified by:
queryBinaryin interfaceINet- Parameters:
url- url with optional parametersurlParams- optional additional url parametersserverHeaders- optional map whose keys indicate response headers to retrieveprogressCallback- optional listener- Returns:
- the server response
- Throws:
IOException- on error
-
queryBinary
public byte[] queryBinary(String url, Map<String, String> urlParams, Map<String, throws IOExceptionString> serverHeaders) Description copied from interface:INetPerform an http GET request.- Specified by:
queryBinaryin interfaceINet- Parameters:
url- url with optional parametersurlParams- optional additional url parametersserverHeaders- optional map whose keys indicate response headers to retrieve- Returns:
- the server response
- Throws:
IOException- on error
-
queryBinary
Description copied from interface:INetPerform an http GET request.- Specified by:
queryBinaryin interfaceINet- Parameters:
url- url with optional parametersparameters- optional additional url parameters- Returns:
- the server response
- Throws:
IOException- on error
-
queryBinary
Description copied from interface:INetPerform an http GET request.- Specified by:
queryBinaryin interfaceINet- Parameters:
url- url with optional parameters- Returns:
- the server response
- Throws:
IOException- on error
-
downloadBinary
public long downloadBinary(File dstfile, String url, Map<String, String> urlParams, Map<String, throws IOExceptionString> serverHeaders, IProgressCallback progressCallback) Description copied from interface:INetDownload a binary and dump it to disk. Similar toINet.queryBinary(String, Map, Map, IProgressCallback), but the downloaded data is not stored and returned, therefore making this method more suitable to download Large files.- Specified by:
downloadBinaryin interfaceINet- Parameters:
dstfile- destination fileurl- url with optional parametersurlParams- optional additional url parametersserverHeaders- optional map whose keys indicate response headers to retrieveprogressCallback- optional listener- Returns:
- the number of bytes written
- Throws:
IOException- on error
-
convertHttpDateToEpoch
An HTTP Date.- Parameters:
dateString- HTTP date string- Returns:
- epoch in ms; 0 on error (that is, Jan 1 1970)
-
isConnectedToNetwork
public static boolean isConnectedToNetwork()Determine if the system offers at least one active non-loopback network interface. Careful! This cannot be used to reliably find out if the system has an Internet connection.- Returns:
- true or false
-
isConnectedToInternet
public static boolean isConnectedToInternet()Determine if the system appears to be connected to the Internet.- Returns:
- true or false
-