有没有办法检索curl资源上设置的POST字段?
e.g。
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
有没有办法从$payload
检索$ch
?
我见过curl_getinfo
:http://www.php.net/manual/en/function.curl-getinfo.php但似乎没有返回此类数据。
答案 0 :(得分:1)
即使使用curl_getinfo
,您也无法在发出请求之后提取POST数据。
根据您的评论,听起来您的代码正在进行curl_setopt
来电,但您有几个地方可以这样做吗?
用于设置POST变量的瘦包装器怎么样
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
获得。
答案 1 :(得分:1)
似乎唯一的方法是在设置数据时使用 CURLOPT_PRIVATE
属性,然后通过该键手动检索。
答案 2 :(得分:0)
我可能会认为没有简单的方法可以做到这一点。如果您需要这些数据进行调试,我建议您在课堂上使用数组,将其设置为:
$options = array(
//other cURL properties...
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $curl_data,
//other cURL properties...
);
然后在curl_setopt_array($ch, $options)
之前使用curl_exec($ch)
将其绑定到 cURL 描述符。