ddddd

PHP (GET/POST)请求

作者:程序员11 时间:2021-06-01 人气:597 QQ交流群\邮箱:1003265987@qq.com
php直接请求url地址
要展示的内容

/*

      * get请求

     *   $url = "https://api.weixin.qq.com/sns/jscode2session?appid={$wxapp_appid}&secret={$wxapp_secret}&js_code={$js_code}&grant_type=authorization_code";

     *   $headers = array('content-type' => 'application/json');

  * */

    public function httpGet($url, $headers = array(), $SSL_VERIFYPEER = false)

    {

        //初始化

        $ch = curl_init();

        //设置选项,包括URL

        curl_setopt($ch, CURLOPT_URL, $url);

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

        curl_setopt($ch, CURLOPT_HEADER, 0);

        //设置是否检查服务器端的证书 微信小程序获取openid的时候 必须设置为 false

        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $SSL_VERIFYPEER);

        if (!empty($headers)) {

            curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

        }

        //执行并获取HTML文档内容

        $output = curl_exec($ch);

        //释放curl句柄

        curl_close($ch);

        //打印获得的数据

        return $output;

    }


    /*

      * post请求

     * $url = "https://api.weixin.qq.com/sns/jscode2session?appid={$wxapp_appid}&secret={$wxapp_secret}&js_code={$js_code}&grant_type=authorization_code";

     * $postData = array('name' => '张三');

     * $headers = array('content-type' => 'application/json');

     *

     *

     * 注意:微信生成小程序码要的是 {"key":"value"...}

     * $post = json_encode($post);

      * */

    public function httpPost($url, $postData, $headers = array(),$endode=false)

    {

        $url_array = parse_url($url);

        if ($url_array['scheme'] == 'https') {

            if(is_array($postData)){

                $postData_string = [];

                foreach ($postData as $k => $v) {

                    $postData_string[] = "{$k}={$v}";

                }

                $postData_string = implode('&', $postData_string);

            }else{

                $postData_string = $postData;

            }

        }

        if ($endode){

            $postData_string=json_encode($postData);

        }

        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL, $url);

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        curl_setopt($ch, CURLOPT_HEADER, false);

        if (!empty($headers)) {

            curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

        }

        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);

        curl_setopt($ch, CURLOPT_TIMEOUT, 30);

        curl_setopt($ch, CURLOPT_POST, 1);

        curl_setopt($ch, CURLOPT_POSTFIELDS, $url_array['scheme'] == 'https' ? $postData_string : $postData);


        if ($url_array['scheme'] == 'https') {

            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//不验证

            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//不验证主机

        }


        $output = curl_exec($ch);


        //获取状态码

        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);


        curl_close($ch);

        return $httpCode == 401 ? $httpCode : $output;

    }


    /*

      * post请求

     * $url = "https://api.weixin.qq.com/sns/jscode2session?appid={$wxapp_appid}&secret={$wxapp_secret}&js_code={$js_code}&grant_type=authorization_code";

     * $data = array('name' => '张三');

      * */

    public function httpsPost($url, $data)

    {

        $curl = curl_init(); // 启动一个CURL会话

        curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址

        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查

        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在

        curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器

        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转

        curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer

        curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求

        curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包   curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post_data));

        curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环

        curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容

        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回

        $tmpInfo = curl_exec($curl); // 执行操作

        if (curl_errno($curl)) {

            echo 'Errno' . curl_error($curl);//捕抓异常

        }

        curl_close($curl); // 关闭CURL会话

        return $tmpInfo; // 返回数据,json格式

    }


温馨提示:

欢迎阅读本文章,觉得有用就多来支持一下,没有能帮到您,还有很多文章,希望有一天能帮到您。

PHP (GET/POST)请求---相关文章


评论区

ddddd

程序员-学习的网站-想学习编程的码农可以进来看看

首页

视频教程

购物车

我的订单