浮叶蓝空的博客
分享学习心得,记录学习笔记
文章:
84
访问:
536913
登录
关于
首页
今天是:
2025年10月25日 星期六
类别
PHP(39)
其他笔记(20)
Java(1)
C++(17)
mysql(2)
JavaScript(4)
近期文章
Linux下Cmake引用第三方静态库示例
Linux下使用Cmake构建静态库示例
Ubuntu设置自动挂载硬盘,挂载U盘
压力测试工具Apache JMeter基本使用
使用PHP脚本借助FFmpeg一键合并视频
Shell中的>、1>、2>、2>&1、&>详解
PHP开启多进程实现异步非阻塞并行执行任务
博主推荐
PHP实现文件下载接口
Qt读写注册表,C++读写注册表
PHP动态修改配置文件,存储为文件
MySql常用语法
Powershell远程连接
PHP从字符串中获取需要的内容部分
封装PHP的HTTP请求
封装PHP的HTTP请求
fuyelk
2019年03月24日
4677
#### 封装PHP的HTTP请求,PHP实现HTTP请求操作,PHP抓取网页,GET请求,POST请求,发送数据 http_user_agent单独发了一篇文章:[《http_user_agent真实记录库》](https://www.milinger.com/a202.html "http_user_agent真实记录库") ```php /** * http完整应用,可根据需要删减 * 修改日期:2021/07/07 13:39 * @param string $url http地址 * @param string $method 请求方式 * @param array $data 请求数据: * <pre> * $data = [ * 'image' => new \CURLFile($filePath), * 'access_token' => 'this-is-access-token' * ... * ] * </pre> * @param int $dataType 数据传输方式 [0:form-data,1:json,2:x-www-form-urlencoded] * @param int $connecttimeout 最长等待连接成功时间 * @param int $timeout 最长等待响应完成时间 * @param array $addHeader 添加请求头 * <pre> * $addHeader = [ * 'origin:https://www.example.com', * 'accept-language:en,zh-CN;q=0.9,zh;q=0.8', * ... * ] * </pre> * @param bool $getCookie 是否获取cookie * @param array $setCookie 设置cookie * <pre> * $setCookie = [ * 'token' = >'uhsai-jkdls-adsaf-dsajko', * 'uid' = >12, * ... * ] * </pre> * @return array|bool|string * @throws \Exception * @author fuyelk <fuyelk@fuyelk.com> */ function http_request_simple($url, $method = 'GET', $data = [], $dataType = 0, $connecttimeout = 10, $timeout = 50, $addHeader = [], $getCookie = false, $setCookie = []) { $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_ACCEPT_ENCODING => 'gzip,deflate', CURLOPT_URL => $url, CURLOPT_CUSTOMREQUEST => strtoupper($method), // 请求方式 CURLOPT_USERAGENT => "Mozilla / 5.0 (Windows NT 10.0; Win64; x64)",// 模拟常用浏览器的useragent CURLOPT_RETURNTRANSFER => true, // 获取的信息以文件流的形式返回,而不是直接输出 CURLOPT_SSL_VERIFYPEER => false, // https请求不验证证书 CURLOPT_SSL_VERIFYHOST => false, // https请求不验证hosts CURLOPT_MAXREDIRS => 10, // 最深允许重定向级数 CURLOPT_CONNECTTIMEOUT => $connecttimeout,// 最长等待连接成功时间 CURLOPT_TIMEOUT => $timeout, // 最长等待响应完成时间 ]); // 发送请求数据 if ($data) { switch ($dataType) { case 1: // json $data = json_encode($data, JSON_UNESCAPED_UNICODE); array_push($addHeader, 'Content-type:application/json'); break; case 2: // x-www-form-urlencoded $data = http_build_query($data); array_push($addHeader, 'Content-type:application/x-www-form-urlencoded'); break; default: array_push($addHeader, 'Content-Type:multipart/form-data'); } curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } curl_setopt($curl, CURLOPT_HTTPHEADER, $addHeader); // 设置请求头 // 设置cookie if ($setCookie) { $cookie = ''; foreach ($setCookie as $coo_name => $coo_value) { $cookie .= $coo_name . '=' . $coo_value . '; '; } curl_setopt($curl, CURLOPT_COOKIE, $cookie); } // 获取Header if ($getCookie) { curl_setopt($curl, CURLOPT_HEADER, true); } $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) throw new \Exception($err); // 不需要cookie则直接返回结果 if (!$getCookie) return $response; list($header, $body) = explode("\r\n\r\n", $response); return [ 'cookie' => parse_cookie_from_header($header), 'body' => $body ]; } ```
上一篇:
Powershell远程连接
下一篇:
生成随机字符
1人点赞
登录后评论
友情链接
doywb
2018-2025 Copyright© 米灵尔 浮叶蓝空
豫ICP备15007436号-1
豫公网安备 41152302000146号