11

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 3

5

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.

Sign up to request clarification or add additional context in comments.

2 Comments

URL.openConnection() is not sending HTTP request to the server.this is the code URL url = new URL("localhost/"); URLConnection myURLConnection = url.openConnection(); myURLConnection.connect(); and I've seen apache access logs and it is not getting the request.
@pavan - Ah, my mistake, the API to use is actually 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.
1

java.util.concurrent can be used .

If you interested is using third party libraries then you might want to take a look at

Async Http Client

Comments

0

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.

1 Comment

from the documentation at the link above: " the send() method returns immediately after dispatching the exchange to a thread pool for execution" - so, not really asynchronous.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.