我们有一个PHP页面(实际上是一个WordPress插件),它通过DIGEST身份验证调用REST API。curl句柄是在每个请求的基础上创建的,给定授权凭据并成功进行身份验证。
问题:
在底层,Curl正在发送两个请求。第一个请求失败,返回401和一个挑战,第二个请求包含Authorization报头,返回成功(200)
在随后的API调用中,cUrl继续发送两个请求。这似乎效率低下,导致2倍的网络延迟增加到操作的持续时间。
我们如何使cURL"先发制人地验证"(示例)未来的请求?
Curl Multi有这个功能吗?
必须重复使用相同的curl句柄:参见类似的问题了解更多细节。
就多接口而言,你还需要显式地重用每个句柄来利用摘要访问认证请求计数器,即考虑到C API:
- 用
curl_multi_remove_handle
从多句柄中删除你的句柄 - 用
curl_easy_reset
复位 - 设置下次呼叫的选项
- 用
curl_multi_add_handle
重新添加到多句柄中