我想调试一个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
这是否意味着帖子数据未包含在请求中?
答案 0 :(得分:2)
没有。这并不意味着您的POST数据未包含在请求中。 CURL并不总是输出已发送数据的内容,这取决于您的服务器设置。但是,您不需要查看该内容,因为CURL完全按照CURLOPT_POSTFIELDS
选项中的方式发送POST数据。唯一的例外是将此选项设置为数组时。但即使在这种情况下,您也可以通过使用给定数组(http_build_data
和urlencode
)重现CURL执行的操作并将结果的长度与Content-Length
请求标头的值进行比较来预测已发送数据的确切内容