PHP的post请求

/***************************************************************************************************
 * File Description:
 * 用curl的方式的访问远程端口
 * curlGet : 用get的方式访问远程的接口返回json串
 * curlPost:用post的方式的进行访问远程接口返回的是json串
 * http:    通过参数校验来判断是post还是get提交
 ***************************************************************************************************/

class  Http_curl
{
    /**
     * @param $url 访问的URL参数拼接在url后面
     * @return bool|string 返回json字符串
     */
    function curlGet($url)
    {

        if (!isset($url)) {
            return "您的参数不合法,请检查";
        }
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        //是否返回http头部1表示返回头部0表示不返回头部
        curl_setopt($curl, CURLOPT_HEADER, 0);
        //如果1时候如果成功就返回true并且返回相应的值,返回数据不直接输出。0不主动返回值,
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        //设置为FALSE 禁止 cURL 验证对等证书(peer’s certificate)。要验证的交换证书可以在 CURLOPT_CAINFO 选项中设置,或在 CURLOPT_CAPATH中设置证书目录。
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);// 这个是主要参数
        $curl_response = curl_exec($curl);
        if ($curl_response == false) {
            echo "错误信息:" . curl_error($curl);
        }
        //可以获取具体的信息
        //$curl_data = curl_getinfo($curl)['name'];
        curl_close($curl);

        return json_encode($curl_response);

    }


    /**
     * @param $post_array    post参数数组
     * @param $url           访问的url
     * @return bool|string 返回json字符串
     */
    function curlPost($post_array, $url)
    {
        if (!isset($post_array, $url)) {
            return "您的参数不合法,请检查";
        }
        $curl = curl_init();
        //是否返回http头部1表示返回头部0表示不返回头部
        curl_setopt($curl, CURLOPT_HEADER, 0);
        //如果1时候如果成功就返回true并且返回相应的值,返回数据不直接输出。0不主动返回值,
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        //设置为FALSE 禁止 cURL 验证对等证书(peer’s certificate)。要验证的交换证书可以在 CURLOPT_CAINFO 选项中设置,或在 CURLOPT_CAPATH中设置证书目录。
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);// 这个是主要参数
        // 这个是主要参数
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        //设置请求为POST
        curl_setopt($curl, CURLOPT_POST, 1);
        //设置post参数
        curl_setopt($curl, CURLOPT_POSTFIELDS, $post_array);
        //返回数据
        $curl_response = curl_exec($curl);

        if ($curl_response == false) {
            return "错误信息:" . curl_error($curl);
        }
        curl_close($curl);

        return json_encode($curl_response);

    }

    /**
     * post提交和get提交的url的集合
     * @param $method     提交方式:post,get方法
     * @param $url        访问的url
     * @param data[] 参数数组,如果是post提交的时候该字段必输
     * @return bool|string 返回json字符串
     */
    function http($url, $method = 'get', $data = [])
    {

        // Log::xdebug("wechat service http url: $url");

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1");
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_AUTOREFERER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
        curl_setopt($ch, CURLOPT_TIMEOUT, 30);

        if ($method == 'post') {
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        }

        $content = curl_exec($ch);
        $error = curl_error($ch);
        $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        curl_close($ch);

        return $content;
    }

} ```
posted @ 2018-06-25 15:49  吴永生  阅读(237)  评论(0)    收藏  举报