温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

php模拟post提交请求,调用接口

发布时间:2020-08-11 15:57:15 阅读:566 作者:gutaotao1989 栏目:web开发
PHP开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>
/**
     * 模拟post进行url请求
     * @param string $url
     * @param string $param
     */
    function request_post($url ''$param ''{
        if (empty($url) || empty($param)) {
            return false;
        }
        
        $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);
        $data curl_exec($ch);//运行curl
        curl_close($ch);
        
        return $data;
    }

这是方法,下面是具体的调用案例。

function testAction(){
        $url 'http://mobile.jschina.com.cn/jschina/register.php';
        $post_data['appid']       = '10';
        $post_data['appkey']      = 'cmbohpffXVR03nIpkkQXaAA1Vf5nO4nQ';
        $post_data['member_name'] = 'zsjs123';
        $post_data['password']    = '123456';
        $post_data['email']    = 'zsjs123@126.com';
        $o "";
        foreach $post_data as $k => $v ) 
        { 
            $o.= "$k=" . urlencode$v ). "&" ;
        }
        $post_data substr($o,0,-1);

        $res $this->request_post($url$post_data);       
        print_r($res);

    }

这样就提交请求,并且获取请求结果了。一般返回的结果是json格式的。

这里的post是拼接出来的。

也可以改造成下面的方式。

/**
     * 模拟post进行url请求
     * @param string $url
     * @param array $post_data
     */
    function request_post($url ''$post_data array(){
        if (empty($url) || empty($post_data)) {
            return false;
        }
        
        $o "";
        foreach $post_data as $k => $v ) 
        { 
            $o.= "$k=" . urlencode$v ). "&" ;
        }
        $post_data substr($o,0,-1);

        $postUrl $url;
        $curlPost $post_data;
        $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);
        $data curl_exec($ch);//运行curl
        curl_close($ch);
        
        return $data;
    }

将拼接也封装了起来,这样调用的时候就更简洁了。

function testAction(){
        $url 'http://mobile.jschina.com.cn/jschina/register.php';
        $post_data['appid']       = '10';
        $post_data['appkey']      = 'cmbohpffXVR03nIpkkQXaAA1Vf5nO4nQ';
        $post_data['member_name'] = 'zsjs124';
        $post_data['password']    = '123456';
        $post_data['email']    = 'zsjs124@126.com';
        //$post_data = array();
        $res $this->request_post($url$post_data);       
        print_r($res);

    }

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×