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);

设置deleteput方式:

curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "PUT");");