我发现了一个让我发疯的“奇怪”的 php CURL 行为。基本上我正在做的是使用 curl 进行摘要身份验证调用。这是我的代码的摘录:
curl_setopt($this->c, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
curl_setopt($this->c, CURLOPT_USERPWD, $username . ":" . $password);
它工作正常,服务器实际上返回“是的,您提供了正确的凭据”类型的消息。唯一的问题是,原始的 http 响应有点奇怪,因为事实上它包含 2 个响应而不是 1 个。这是 curl_exec($this->c) 吐出的内容:
HTTP/1.0 401 Unauthorized
Date: Tue, 23 Oct 2012 08:41:18 GMT
Server: Apache/2.2.20 (Ubuntu)
X-Powered-By: PHP/5.3.6-13ubuntu3.9
WWW-Authenticate: Digest realm="dynamikrest-testing",qop="auth",nonce="5086582e95104",opaque="4b24e95490812b28b3bf139f9fbc9a66"
Vary: Accept-Encoding
Content-Length: 9
Connection: close
Content-Type: text/html
HTTP/1.1 200 OK
Date: Tue, 23 Oct 2012 08:41:18 GMT
Server: Apache/2.2.20 (Ubuntu)
X-Powered-By: PHP/5.3.6-13ubuntu3.9
Vary: Accept-Encoding
Content-Length: 9
Connection: close
Content-Type: text/html
"success"
我不明白为什么它包含来自服务器的第一个响应(它声明它需要身份验证的响应)。
任何人都可以对这个问题有所了解吗?如何避免响应的累积?
干杯