How to send asynchronous HTTP GET/POST request in java without waiting/reading response ?I don't want to use any third party libraries ..
3 Answers
If you're not interested in reading the response at all you can just use URL.openStream() to create a connection and then immediately close the socket (or ignore it and let it time out, if you feel like being mean to the server). This isn't strictly asynchronous, but it will be quite a bit faster than any approach that relies upon fetching and parsing the server's response.
This can of course be made asynchronous by offloading the openStream() calls to another thread, either manually or by using the utilities available in java.util.concurrent.
2 Comments
openStream(), not openConnection(). openConnection() prepares a connection object, but does not actually establish a connection to the server. openStream() establishes the connection and returns the InputStream associated with it, which you are then free to read or close or ignore. I'll edit my answer accordingly.java.util.concurrent can be used .
If you interested is using third party libraries then you might want to take a look at
Comments
I would suggest using something like the Jetty HttpClient if you don't mind adding the Jetty libraries to your app. Here's a good example from Jetty's wiki page http://wiki.eclipse.org/Jetty/Tutorial/HttpClient.