From the documentation, a HttpURLConnection will connect either if you call connect(), or if you call an operation that depends on being connected, like getInputStream() .
Opens a communications link to the resource referenced by this URL, if such a connection has not already been established. If the connect method is called when the connection has already been opened (indicated by the connected field having the value true), the call is ignored.
URLConnection objects go through two phases: first they are created, then they are connected. After being created, and before being connected, various options can be specified (e.g., doInput and UseCaches). After connecting, it is an error to try to set them. Operations that depend on being connected, like getContentLength, will implicitly perform the connection, if necessary.
However, several topics indicate that connect() won't commit the actual request, but getInputStream() (and most likely any method reading the server's response e.g getResponseCode() ), will :
Java URLConnection - When do I need to use the connect() method?Java URLConnection - When do I need to use the connect() method?
Why does HttpURLConnection not send the HTTP requestWhy does HttpURLConnection not send the HTTP request
How to send PUT, DELETE HTTP request in HttpURLConnection?How to send PUT, DELETE HTTP request in HttpURLConnection?