PHP模拟发送get、post请求

PHP模拟发送get、post请求

  1. 模拟发送post请求
    public function httpPost($url = '', $param = []) {
        if (!$url || empty($param)) return false;
        // 创建一个新CURL资源
        $ch = curl_init($url);
        // 设置头文件的信息作为数据流是否输出
        curl_setopt($ch, CURLOPT_HEADER, false);
        // 设置获取的信息以文件流的形式返回,而不是直接输出。
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        // 设置post方式提交
        curl_setopt($ch, CURLOPT_POST, true);
        // 设置post数据
        curl_setopt($ch, CURLOPT_POSTFIELDS, $param);
        // 不验证证书
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        // 不验证HOST
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        // 执行请求
        $data = curl_exec($ch);
        // 关闭CURL资源,并且释放系统资源
        curl_close($ch);
        return $data;
    }
  1. 模拟发送get请求
    public function httpGet($url = '') {
        if (!$url) return false;
        $curl = curl_init();
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        // 设置cURL允许执行的最长秒数。	
        curl_setopt($curl, CURLOPT_TIMEOUT, 500);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
        // 需要获取的URL地址,也可以在curl_init()函数中设置
        curl_setopt($curl, CURLOPT_URL, $url);
        $res = curl_exec($curl);
        // 关闭CURL资源,并且释放系统资源
        curl_close($curl);
        return $res;
    }

CURLOPT_HEADER:启用时会将头文件的信息作为数据流输出。

CURLOPT_RETURNTRANSFER :[ true | false ] 选项,也可以使用1 | 0代替;
【true】:如果成功只将结果返回,不自动输出任何内容; 如果失败返回FALSE;
【false】:如果成功只返回TRUE,自动输出返回的内容; 如果失败返回FALSE;
使用PHP curl获取页面内容或提交数据,有时候希望返回的内容作为变量储存,而不是直接输出。这个时候就必需设置curl的CURLOPT_RETURNTRANSFER选项为1或true。

CURLOPT_POST:如果你想PHP去做一个正规的HTTP POST,设置这个选项为一个非零值。这个POST是普通的 application/x-www-from-urlencoded 类型,多数被HTML表单使用。

CURLOPT_POSTFIELDS:全部数据使用HTTP协议中的"POST"操作来发送。要发送文件,在文件名前面加上@前缀并使用完整路径。

CURLOPT_SSL_VERIFYPEER:禁用后cURL将终止从服务端进行验证。使用CURLOPT_CAINFO选项设置证书使用CURLOPT_CAPATH选项设置证书目录,如果CURLOPT_SSL_VERIFYPEER(默认值为2)被启用,CURLOPT_SSL_VERIFYHOST需要被设置成TRUE否则设置为FALSE。

CURLOPT_SSL_VERIFYHOST:
1 检查服务器SSL证书中是否存在一个公用名(common name)。译者注:公用名(Common Name)一般来讲就是填写你将要申请SSL证书的域名 (domain)或子域名(sub domain)。
2 检查公用名是否存在,并且是否与提供的主机名匹配。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值