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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM