一个常用的通过CURL发送HTTP请求的函数 ThinkPHP
来源:互联网 发布:电子签章软件下载 编辑:程序博客网 时间:2024/06/03 17:24
在这里我也来分享一下我正在系统里用到的一个通过cURL来发送HTTP请求的函数。
/** * 发送HTTP请求方法 * @param string $url 请求URL * @param array $params 请求参数 * @param string $method 请求方法GET/POST * @return array $data 响应数据 */ function http($url, $params, $method = 'GET', $header = array(), $multi = false){ $opts = array( CURLOPT_TIMEOUT => 30, CURLOPT_RETURNTRANSFER => 1, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_HTTPHEADER => $header ); /* 根据请求类型设置特定参数 */ switch(strtoupper($method)){ case 'GET': $opts[CURLOPT_URL] = $url . '?' . http_build_query($params); break; case 'POST': //判断是否传输文件 $params = $multi ? $params : http_build_query($params); $opts[CURLOPT_URL] = $url; $opts[CURLOPT_POST] = 1; $opts[CURLOPT_POSTFIELDS] = $params; break; default: throw new Exception('不支持的请求方式!'); } /* 初始化并执行curl请求 */ $ch = curl_init(); curl_setopt_array($ch, $opts); $data = curl_exec($ch); $error = curl_error($ch); curl_close($ch); if($error) throw new Exception('请求发生错误:' . $error); return $data; }调用方法:
//定义一个要发送的目标URL; $url = "https://www.xxx.com"; //定义传递的参数数组; $data['aaa']='aaaaa'; $data['bbb']='bbbb'; //定义返回值接收变量; $httpstr = http($url, $data, 'POST', array("Content-type: text/html; charset=utf-8"));
温馨提示:如果客户端服务端都是php,由于php目前只能接收Content-Type: application/x-www-form-urlencoded提交的数据,也就是post表单提交的数据所以需要自行更改Content-Type的类型
这里还有几种PHP获取POST数据的方法汇总:http://www.jb51.net/article/61690.htm
阅读全文
0 0
- 一个常用的通过CURL发送HTTP请求的函数 ThinkPHP
- 一个简单实用的cURL模拟http请求的函数
- curl 发送HTTP请求 常用用法
- curl 一个强大的http请求工具
- HTTP协议理解 + PHP使用curl函数发送Post请求的注意事项
- CURL发送HTTP请求
- curl 发送http 请求
- 使用CURL来发送HTTP请求的方法
- php file_get_contens()和Curl发送http请求的区别
- 常用PHP函数系列二:优化过的模拟HTTP请求函数(CURL版)
- android 发送一个http请求的问题
- php curl 发送GET,POST请求的函数
- curl外另外一种发送http请求和接收http请求的方式
- 关于通过curl函数请求微信接口的总结
- 请使用socket相关函数(非curl)实现如下功能:构造一个post请求,发送到指定httpserver的指定端口的指定请求路径(如http://www.example.com:8080/test)
- curl 模拟http发送请求
- 通过java.net.URLConnection发送HTTP请求的方法
- 通过java.net.URLConnection发送HTTP请求的方法
- EU4-21: Making a doctor's appointment
- HDU
- UVa1347 Tour
- android button控制linearlayout的显示隐藏
- Mac下jdk+tomcat+eclipse开发环境搭建
- 一个常用的通过CURL发送HTTP请求的函数 ThinkPHP
- UVa437 The Tower of Babylon
- SQL Server中bit数据类型应用
- python重点语法总结(一)---- lambda表达式
- ExpandableListView可折叠列表
- 计算机视觉----Harris 角点检测
- Day39-Hibernate02
- Function (HDU 6038)
- UVa1025 A Spy in the Metro