PHP中使用cURL实现Get和Post请求的方法
16lz
2021-01-22
一、curl是什么
PHP支持的由Daniel Stenberg创建的libcurl库允许你与各种的服务器使用各种类型的协议进行连接和通讯。
libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的上传、代理、cookies和用户名+密码的认证
二、curl命令行执行
1、Get方法请求curl protocol://address:port/url?args
例如:curl http://www.baidu.com
2、Post方法请求curl -d "args" "protocol://address:port/url"
例如:curl -d "user=root&passwd=12345678" "http://baidu.com"
三、curl模拟浏览器执行
function curlRequest($url, $data = null, $headers=null, $connect_timeout = 1000, $read_timeout = 2000) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); if ($headers) { curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);//设置请求头 } if ($data !== null) { curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); } if (defined('CURLOPT_CONNECTTIMEOUT_MS')) { $options[CURLOPT_CONNECTTIMEOUT_MS] = $connect_timeout; $options[CURLOPT_TIMEOUT_MS] = $connect_timeout + $read_timeout; } else { $options[CURLOPT_CONNECTTIMEOUT] = ceil($connect_timeout / 1000); $options[CURLOPT_TIMEOUT] = ceil(($connect_timeout + $read_timeout) / 1000); } $content = curl_exec($ch); if (false === $content) { return false; } $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); if ($http_code !== 200) { return false; } return $content;
更多相关文章
- IIS7+PHP上传图片成功但却不能访问401.3
- Ajax上传插件。handleError未找到
- 使用php将文件上传到AWS S3
- 无法使用dropzone上传多个文件
- 解决Apache2+PHP上传文件大小限制的问题技术集锦
- 上传文件时通过AJAX更新列表
- PHP上传文件 Error 6解决方法
- 使用ASIHTTPRequest从iOS上传图像
- 【ecmall】解决无法上传店铺logo和banner照片问题