有什么方法可以检索curl资源上设置的POST字段吗?
例如
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
有没有办法从$ch
中检索$payload
?
我看过curl_getinfo
:http://www.php.net/manual/en/function.curl-getinfo.php但它似乎没有返回这样的数据。
即使使用curl_getinfo
,在发出请求之前也无法提取POST数据。
根据您的评论,听起来您的代码正在进行curl_setopt
调用,但您有几个地方可以这样做?
如何设置POST vars 的薄包装
class SomeClient {
private $post_vars = array();
private $ch;
private function _curl_setpostvar(array $post_vars) {
$this->post_vars = array_merge($this->post_vars, $post_vars);
curl_setopt($this->ch, CURLOPT_POSTFIELDS, $post_vars);
}
}
现在,当在句柄上设置POST变量时,您的其他实例方法可以用_curl_setpostvar
代替curl_setopt
。
POST变量将通过$this->post_vars
可用,甚至在发送请求之前。
唯一的方法似乎是在设置数据时使用CURLOPT_PRIVATE
属性,然后通过该键手动检索。
我可能认为没有简单的方法可以做到这一点。如果您需要这些数据进行调试,我建议使用类中的数组,将其设置为:
$options = array(
//other cURL properties...
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $curl_data,
//other cURL properties...
);
然后在CCD_ 12之前用CCD_ 11将其绑定到cURL描述符。