分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

curl模拟请求常用参数

发布时间:2023-09-06 01:33责任编辑:苏小强关键词:url
封装一个curl模拟浏览器请求的函数,如下:/** * curl模拟浏览器请求 * @param unknown $url ???????请求的地址 * @param array $params ???????请求地址所需要的参数 * @param string $method ????请求的类型 * @param array $headers ???http请求头 * @return string|mixed */function curlRequest($url, array $params, $method=‘POST‘, array $headers=array()){ ???????// 1.初始化一个curl会话资源 ???$ch = curl_init(); ????// 2.设置curl会话的选项 ???curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); ???// 强制使用 HTTP/1.0 ???curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); ???// 发起连接前等待超时的时间,如果设置为0,则无限等待 ????curl_setopt($ch, CURLOPT_TIMEOUT, 30); ???// 设置curl允许执行的最长秒数 ???curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); ???// 是否将curl_exec()获取的信息返回,而不是直接输出 ???curl_setopt($ch, CURLOPT_ENCODING, ‘gzip‘); ???// 设置HTTP请求头中"Accept-Encoding: "的值 ???curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); ???// 启用时会将服务器返回的"Location: "放在header中递归的返回给服务器 ???curl_setopt($ch, CURLOPT_MAXREDIRS, 5); ???// 设置HTTP重定向的最大数量,这个选项是和CURLOPT_FOLLOWLOCATION一起使用的 ???curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); ???// 是否需要进行服务端的SSL证书验证 ???curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); ???// 是否验证服务器SSL证书中的公用名 ???curl_setopt($ch, CURLOPT_HEADER, false); ???// 是否抓取头文件的信息 ???curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); ???????// 设置HTTP请求头 ???curl_setopt($ch, CURLINFO_HEADER_OUT, true); ????switch (strtoupper($method)) { ???????case ‘POST‘: ???????????curl_setopt($ch, CURLOPT_POST, true); ???????????curl_setopt($ch, CURLOPT_POSTFIELDS, $params); ???????????break; ????????case ‘GET‘: ???????????$url = "{$url}?" . http_build_query($params); ???????????break; ????????case ‘DELETE‘: ???????????curl_setopt($ch, CURLOPT_CUSTOMREQUEST, ‘DELETE‘); ???????????$url = "{$url}?" . http_build_query($params); ???????????break; ????????default: ???????????return ‘invalid request method‘; ???} ????curl_setopt($ch, CURLOPT_URL, $url); ???// 设置需要请求的URL地址,也可以在 curl_init()函数中设置 ????// 3.执行curl会话 ???$response = curl_exec($ch); ????// 4.关闭curl会话,释放资源 ???curl_close($ch); ????return $response;} 函数调用方式如下:$url = ‘http://demo.dev/test‘;$params = array(‘id‘=>1,‘name‘=>‘zpt‘);$res = curlRequest($url,$params);echo $res;

curl模拟请求常用参数

原文地址:https://www.cnblogs.com/phpper/p/8146008.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved