PHP Curl -头在重定向中不持久


PHP Curl - headers not persisting across redirect

我正在编写一个webservice客户端,它从命令行运行并访问使用Oauth2的服务。

我似乎正确地获得了Oauth令牌,并且对webservice的第一个请求识别了令牌。然而,响应是303重定向(我已经设置了CURLOPT_FOLLOWLOCATION => true),但是后续页面说我没有提供身份验证令牌。

目前我通过设置curl句柄的标头来传递oauth令牌:

"Authorization: OAuth2 $oauth"

我怀疑在后续的请求中没有包含标头。

我尝试设置CURLOPT_UNRESTRICTED_AUTH => true,但无济于事(但根据手册,它在重定向中保留用户名和密码-而不是身份验证头)。

webservice允许oauth令牌在认证头或URL中发送(但不是作为cookie)。在URL中设置令牌会返回相同的重定向(即没有URL中的令牌),因此我不能在CURLOPT_FOLLOWLOCATION中使用此方法。

(该服务不允许在cookie中发送oauth令牌,PHP版本为5.6)

发现在我连接的Websense代理上发生了许多其他不好的事情(缓存已知过期的内容,缓存POST响应!)我试着绕过它,所有的问题都消失了。