How to do keepalive http request with curl?
I don't know if you really meant "concurrent", but from the description I believe you just want to reuse the connection. If you simply perform
two requests to the same server, it should reuse the connection
/* get the first document */ curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/");res = curl_easy_perform(curl);/* get another document from the same server using the same connection */ curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/docs/");res = curl_easy_perform(curl);
Here are portions of the output:
* About to connect() to example.com port 80 (#0)* Trying 192.0.32.10... * connected* Connected to example.com (192.0.32.10) port 80 (#0)[...]* HTTP/1.0 connection set to keep alive!< Connection: Keep-AliveConnection: Keep-Alive[...]* Connection #0 to host example.com left intact* Re-using existing connection! (#0) with host example.com* Connected to example.com (192.0.32.10) port 80 (#0)
EDIT In light of comment
In that case you need the multi
interface. The multi
interafce says:
Enable multiple simultaneous transfers in the same thread without making it complicated for the application.
For an example, see multi-double.c
("Simply download two HTTP files!").