Как сделать запрос 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-файла!").