获取cUrl以抢先的方式在PHP中发送DIGEST身份验证的Authorization标头

时间:2013-01-16 14:22:14

标签: php libcurl curl-multi http-digest

我们有一个PHP页面(实际上是一个WordPress插件),它使用DIGEST身份验证调用REST API。 curl句柄是基于每个请求创建的,具有授权凭据并成功进行身份验证。

问题:

引擎盖下,Curl正在发送两个请求。第一个失败的是401和一个挑战,第二个包含Authorization标头并且成功(200)

在后续的API调用中,cUrl继续发送两个请求。这似乎效率低下,导致2 x网络延迟被添加到操作的持续时间。

我们如何使cURL“先发制人地验证”(example)未来的请求?

Curl Multi有这个功能吗?

1 个答案:

答案 0 :(得分:1)

您必须重复使用相同的卷曲手柄:有关详细信息,请参阅this similar question

就多接口而言,您还需要显式重用每个句柄以利用摘要访问身份验证请求计数器,即考虑到C API:

  1. 使用curl_multi_remove_handle
  2. 从多把手中取出手柄
  3. 使用curl_easy_reset
  4. 重置它
  5. 设置下次通话的选项
  6. 使用curl_multi_add_handle
  7. 将其重新添加到多句柄中