PHP curl——在实例化的curl资源上获取POST字段



有什么方法可以检索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描述符。

最新更新