php模拟post请求 测试api接口

本文介绍了如何使用PHP进行模拟POST请求,以便测试和验证API接口的正确性。通过构建HTTP请求头和发送数据,可以有效地对接口进行功能验证。
<?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;
    }
    ?>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值