HTTP请求方式有好几种,我们平常比较常用的可能就是GET,POST但是有时候一些特殊需求,需要使用delete,put等。
curl怎么实现呢?
示例函数:
protected function curlRequest($url,$type='post',$data,$headers = array())
{
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
// curl_setopt($ch, CURLOPT_HEADER, false); //表示需要response header
// curl_setopt($ch, CURLOPT_NOBODY, FALSE);
switch ($type) {
case 'post':
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
break;
case 'get':
curl_setopt($ch,CURLOPT_HTTPGET,1);
break;
case 'delete':
curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
break;
case 'put':
curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "PUT");
break;
default:
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
break;
}
if (!empty($headers)) {
curl_setopt($ch,CURLOPT_HEADER,$headers);
} else {
curl_setopt($ch,CURLOPT_HEADER,0);
}
$result = curl_exec($ch);
return $body;
}
设置GET
方式:
curl_setopt($ch,CURLOPT_HTTPGET,1);
设置POST
方式:
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
设置delete
,put
方式:
curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "PUT");");