设置为空 CURLOPT_POSTFIELDS
Setting empty CURLOPT_POSTFIELDS
我正在尝试使用通用库函数通过 curl 发送 GET 和 POST 请求。
function myCurl($url, $postData = null)
{
// Sets some default curl options here
$options = array(
...
CURLOPT_POSTFIELDS => $postData,
...
);
$ch = curl_init();
// this works and sends GET
// unset($options[CURLOPT_POSTFIELDS]);
curl_setopt_array($ch, $options);
curl_exec($ch);
curl_close($ch);
}
如果设置了 $postData
,我希望此函数发送 POST,否则将其视为 GET
。但是,即使我将 CURL_POSTFIELDS
设置为 null
,这也会发送 POST。取消设置 CURL_POSTFIELDS
选项数组元素有效并发送 GET
。但是,有没有办法保留 CURL_POSTFIELDS
curl 选项并将其设置为默认空值并使其发送 GET
请求?
$options = array(
...
);
if(!empty($postData)){
$options[CURLOPT_POSTFIELDS]=$postData;
}
或者,以下方法应该可行,但在我看来是愚蠢的:
$options = array(
...
CURLOPT_POSTFIELDS => $postData,
CURLOPT_HTTPGET => empty($postData)
...
);
我正在尝试使用通用库函数通过 curl 发送 GET 和 POST 请求。
function myCurl($url, $postData = null)
{
// Sets some default curl options here
$options = array(
...
CURLOPT_POSTFIELDS => $postData,
...
);
$ch = curl_init();
// this works and sends GET
// unset($options[CURLOPT_POSTFIELDS]);
curl_setopt_array($ch, $options);
curl_exec($ch);
curl_close($ch);
}
如果设置了 $postData
,我希望此函数发送 POST,否则将其视为 GET
。但是,即使我将 CURL_POSTFIELDS
设置为 null
,这也会发送 POST。取消设置 CURL_POSTFIELDS
选项数组元素有效并发送 GET
。但是,有没有办法保留 CURL_POSTFIELDS
curl 选项并将其设置为默认空值并使其发送 GET
请求?
$options = array(
...
);
if(!empty($postData)){
$options[CURLOPT_POSTFIELDS]=$postData;
}
或者,以下方法应该可行,但在我看来是愚蠢的:
$options = array(
...
CURLOPT_POSTFIELDS => $postData,
CURLOPT_HTTPGET => empty($postData)
...
);