curl (post/get)请求,文件上传

1,post请求

示例1:

 1   public function request($requestUrl,$paramenters){  //传入请求连接url 和参数        参数为json 编码
 2              //$access_token='NGFkMWYwOTc1NTdkNGRhYWE4ZjlmM2QyODNmYTJlYmM';
 3              $access_token=$this->access_token_verify();
 4   
 5              $headers = array();  //设置请求头文件
 6              $headers[]='Authorization: Bearer '.$access_token;  
 7              $headers[]='Content-Type: application/json';
 8              //dump($headers);
 9              $url =$requestUrl;
10              $curl = curl_init();
11              curl_setopt($curl, CURLOPT_URL, $url);
12              curl_setopt($curl, CURLOPT_HTTPHEADER,$headers); //请求头信息
13              curl_setopt($curl, CURLOPT_HEADER,0);
14              curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
15              curl_setopt($curl, CURLOPT_POST, true); //post传输数据
16              curl_setopt($curl, CURLOPT_POSTFIELDS,$paramenters);
17  
18              //curl_setopt($curl,CURLINFO_HEADER_OUT,true);  //收集请求头信息  curl设置一个信息一个信息才有效 不设置是不起作用的,这里为了看自定义的请求头文件是否正确
19  
20              $data = curl_exec($curl);
21  
22              //dump(curl_getinfo($curl,CURLINFO_HEADER_OUT));  //打印请求头信息
23  
24              curl_close($curl);
25              dump($data);  //打印请求数据     
26              return $data;
27          }

 示例2:

 1  public function request($requesturl,$paramenters,$signature){  //参数为数组
 2         //$paramenters['sign_type']='CERT';
 3         //$paramenters['sign']=$signature; //签名类型和签名字符串
 4         $url =$requesturl;
 5         $curl = curl_init();
 6         curl_setopt($curl, CURLOPT_URL, $url);
 7         curl_setopt($curl, CURLOPT_HEADER,0);
 8         curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
 9         curl_setopt($curl, CURLOPT_POST, true);
10         curl_setopt($curl, CURLOPT_POSTFIELDS,http_build_query($paramenters));  //http_build_query根据数组产生一个urlencode之后的请求字符串
11         $data = curl_exec($curl);
12         curl_close($curl);
13         return $data;
14 
15     }

2,get请求

 1 public function request($requestUrl,$idNo){  //传入请求链接和参数
 2 
 3             $access_token=$this->access_token_verify();
 4 
 5             //dump($requestUrl);
 6            // dump($idNo);
 7             $url =$requestUrl.$idNo;//dump($url);
 8 
 9             $headers = array();
10             $headers[]='Authorization: Bearer '.$access_token;
11             $curl = curl_init();
12             curl_setopt ($curl, CURLOPT_URL, $url);
13             curl_setopt($curl, CURLOPT_HTTPHEADER,$headers);
14             curl_setopt($curl, CURLOPT_HEADER,0);
15             curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1);
16         
17 
18             //curl_setopt($curl,CURLINFO_HEADER_OUT,true);
19 
20             $status_data = curl_exec($curl);
21 
22             //dump(curl_getinfo($curl,CURLINFO_HEADER_OUT));
23 
24             curl_close($curl);
25             // dump($status_data);
26             return $status_data;
27         }

3, 上传 .zip 格式文件

 1 public function upload_zip(){
 2           //dump($_POST);
 3             /*dump($_FILES);
 4             dump($_FILES['filew']['name']);*///die;
 5             $requestUrl=self::BASE_URL.self::UPLOAD_ZIP;  //dump($requestUrl);                
 6                 $post_data=array(   
 7                         "extId"=>'YW005-170413-001',        
 8                         "file" => '@'.ROOT_PATH."public/static/aaa.zip"  //文件要以@开头
 9                     );                        
10                 $access_token=$this->access_token_verify();//die;
11 
12                 $headers = array();
13                 $headers[]='Content-Type: multipart/form-data';
14                 $headers[]='Authorization: Bearer '.$access_token;
15 
16                 $url =$requestUrl;//dump($url);//die;
17                 $curl = curl_init();
18                 curl_setopt($curl, CURLOPT_URL, $url);
19                 curl_setopt($curl, CURLOPT_HTTPHEADER,$headers);
20                 curl_setopt($curl, CURLOPT_HEADER,0);
21                 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
22                 curl_setopt($curl, CURLOPT_POST,1);
23                 curl_setopt($curl, CURLOPT_POSTFIELDS,$post_data);
24 
25                 //curl_setopt($curl,CURLINFO_HEADER_OUT,true);
26                 $data = curl_exec($curl);
27                 //dump(curl_getinfo($curl,CURLINFO_HEADER_OUT));
28                 //var_dump(curl_error($curl));//die;
29                 curl_close($curl);
30                // dump($data);       
31                 return $data;
32         }

 4,出现错误: curl  SSL certificate problem: unable to get local issuer certificate

  如果不紧要的可以选择跳过ssl的检测  ,  在curl_exec之前

  curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
原文地址:https://www.cnblogs.com/ikoala/p/7448541.html