curll_handle = Curl init()
curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 20 )
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 30);
Request1:(curll_handle)
Curl_easy_perform(curll_handle)
For connection = 20 secs
Chal response request = 30 secs
request2:与上面使用的句柄相同
curl_slist_append(headers, "Connection: Close");
Curl_easy_perform(curll_handle)
问题:
Request 1:
will it use both timeouts(connection and response timeouts) for curl perform?
what is the total time will take? as per my understand 30 secs(CURLOPT_CONNECTTIMEOUT + CURLOPT_TIMEOUT)
Request 2:
if we use same request1 curl handle for request2. is it(req2) curl_easy_perform() will d0 both connection and response sequence requestS?
what the timeout value use for sencond request if use same req1 curl handle?
答案 0 :(得分:0)
请求1:
CURLOPT_TIMEOUT
是整个操作的最长时间。它不会花更多的时间。你知道它会在30秒内完成,无论成功与否。
CURLOPT_CONNECTTIMEOUT
是您允许“连接阶段”的最长时间。如果未在20秒内完成与远程服务器的连接,则传输将返回失败。
时间完全相互独立。因此,如果连接阶段需要19秒,那么传输完成还剩11秒,否则将触发最大超时。
请求2:
使用相同的选项和选项是粘性的,并且在更改之前将是相同的,因此它将具有与请求1完全相同的超时值。
如果保留连接并从请求1重新使用,CURLOPT_CONNECTTIMEOUT
将不会触发,因为它已经连接。