如何检查curl传递的帖子数据

时间:2014-08-04 18:12:54

标签: php curl

我想调试一个curl请求,并检查请求中传递了哪些 post arguments

    curl_setopt($ch, CURLOPT_POST, TRUE);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_HEADER, TRUE);
    curl_setopt($ch, CURLINFO_HEADER_OUT, TRUE);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
    curl_setopt($ch, CURLOPT_CAINFO, MERCHANT_CONFIG_PATH.'/cacert.pem');
    curl_setopt($ch, CURLOPT_VERBOSE, true);
    var_export(curl_getinfo($ch));

但我只看到了这个

[request_header] => POST /nvp HTTP/1.1
Host: api-3t.sandbox.paypal.com
Accept: */*
Content-Length: 728
Content-Type: application/x-www-form-urlencoded

这是否意味着帖子数据未包含在请求中?

1 个答案:

答案 0 :(得分:2)

没有。这并不意味着您的POST数据未包含在请求中。 CURL并不总是输出已发送数据的内容,这取决于您的服务器设置。但是,您不需要查看该内容,因为CURL完全按照CURLOPT_POSTFIELDS选项中的方式发送POST数据。唯一的例外是将此选项设置为数组时。但即使在这种情况下,您也可以通过使用给定数组(http_build_dataurlencode)重现CURL执行的操作并将结果的长度与Content-Length请求标头的值进行比较来预测已发送数据的确切内容