Как сделать запрос HTTP keepalive с curl?
Как я могу запросить несколько страниц с одного веб-сервера в одном соединении?
таким образом, клиентская сторона должна извлечь ответ для каждого запроса, конечно, это работа сервера, чтобы сделать ответ в том же порядке, как запрошено.
кто-нибудь знает хитрость?
1 ответов
Я не знаю, действительно ли вы имели в виду "параллельный", но из описания я считаю, что вы просто хотите повторно использовать соединение. Если вы просто perform два запроса на один и тот же сервер, он должен повторно использовать соединение
/* 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);
Вот части вывода:
* 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-Alive
Connection: 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)
редактировать в свете комментария
в этом случае вам нужно multi интерфейс. The multi interafce говорит:
включить несколько одновременных передач в одном потоке без все усложняет приложение.
пример см. В разделе multi-double.c ("просто скачайте два HTTP-файла!").
