php模擬post請求 測試api接口

<?php
   /*api接口測試*/
    public function testApi()
    {
        $url = 'http://192.168.1.154/index.php';
        $param['app'] = 'api';
        $param['mod'] = 'Oauth';
        $param['act'] = 'request_key'; 
        $image_url[]  = SITE_PATH.'/20150729.jpg';
        $result = $this->request_post($url, $param, $image_url);   
        $result = json_decode($result);
        $result = (array)$result;
        var_dump($result);
    }
    /*post 請求*/
    public function request_post($url, $param=array() , $image_url = array())
    {
        if (empty($url) || empty($param)) {
            return false;
        }
        if(!$image_url)
        {
            $o = "";
            foreach ( $param as $k => $v ) 
            { 
                $o.= "$k=" . urlencode( $v ). "&" ;
            }
            $param = substr($o,0,-1);
        }
        else
        {
            foreach ($image_url as $k => $file_path) 
            {
                //  image/gif  ;   image/jpeg  ;  image/png  
                $mime_type = 'image/jpeg';
                $file_name = date('Ymd');
                $param['file'.$k] = curl_file_create( $file_path, $mime_type, $file_name);     
            }
        }
        $postUrl = $url;
        $curlPost = $param;
        $ch = curl_init();//初始化curl
        curl_setopt($ch, CURLOPT_URL,$postUrl);//抓取指定網頁
        curl_setopt($ch, CURLOPT_HEADER, 0);//設置header 啓用時會將頭文件的信息作爲數據流輸出
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//獲取的信息以文件流的形式返回,而不是直接輸出
        curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
        curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);//curlPost 是數組的時候,Content-Type頭將會被設置成multipart/form-data。
        $data = curl_exec($ch);//運行curl
        curl_close($ch);
        return $data;
    }
    ?>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章