文档章节

curl 请求,兼容get ,post ,put patch,delete

摇滚哈哈狗
 摇滚哈哈狗
发布于 2016/01/28 10:55
字数 206
阅读 407
收藏 6
if(!function_exists('CurlHttp'))
{

    function CurlHttp($url,$method='GET',$data='',$header=array(),$timeout=5)
    {
        $response = '';
        try{
            $ch = curl_init(); //初始化CURL句柄
            curl_setopt($ch, CURLOPT_URL, $url); //设置请求的URL
            curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //设为TRUE把curl_exec()结果转化为字串,而不是直接输出
            curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);//超时设置
            $headers = array();
            foreach($header as $key=>$value){
                $headers[] = $key.' : '. $value;
            }
            if(is_array($data)){
                $temp = array();
                foreach($data as $key=>$value)
                {
                    $temp[] = $key.'='.$value;
                }
                $params = implode('&',$temp);
                unset($temp);
            }else{
                $params = $data;
            }
            curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);//设置HTTP头信息
            switch ($method){
                //case "GET" :
                    //curl_setopt($ch, CURLOPT_HTTPGET, true);break;
                case "POST":
                    curl_setopt($ch, CURLOPT_POST,true);
                    curl_setopt($ch, CURLOPT_POSTFIELDS,$params);break;
                case "PUT" :
                    curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "PUT");
                    curl_setopt($ch, CURLOPT_POSTFIELDS,$params);break;
                case "DELETE":
                    curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
                    curl_setopt($ch, CURLOPT_POSTFIELDS,$params);break;
                default :
                    curl_setopt($ch, CURLOPT_HTTPGET, true);break;
            }

            $response = curl_exec($ch);//执行预定义的CURL
            $info = curl_getinfo($ch);
            $errno = curl_errno($ch);
            if($errno){
                throw new Exception(curl_getinfo($ch),$errno);
            }
            curl_close($ch);
        }catch(Exception $e){
            $errArr = array(
                'curlerrno'=>$e->getCode(),
                'curlinfo' =>$e->getMessage()
            );
            Log::errro('curlerror',$errArr);
        }
        return $response;
    }
}


© 著作权归作者所有

摇滚哈哈狗
粉丝 14
博文 226
码字总数 28445
作品 0
深圳
程序员
私信 提问
HTTP/RESTful 请求库--httpx.js

httpx.js 是一个简单的 JavaScript HTTP/RESTful 请求库。 主要方法 GET POST PUT PATCH DELETE Other JSON JSONP getScript 兼容情况 Firefox 4.0+ Chrome 7+ IE 9+ Opera 11.60+ Safari 5......

叶秀兰
2015/06/17
2.3K
0
PHP 的 HTTP 客户端库--Requests(PHP)

Requests是一个用PHP编写的HTTP库,遵循ISC开源协议,托管在GitHub上。Requests取代了Python HTTP/1.1以外的一切工作———让你与Web服务可以无缝的结合。 Requests提供了一致的API,并且使用...

july
2013/10/10
2.6K
0
YurunHttp 3.0 发布,支持 Swoole 协程+PSR-7 标准

YurunHttp 是开源的 PHP HTTP 类库,支持链式操作,简单易用。 支持所有常见的 GET、POST、PUT、DELETE、UPDATE 等请求方式,支持上传下载、设置和读取 header、Cookie、请求参数、失败重试、...

宇润
2018/07/09
686
6
使用 json-server 简单完成CRUD模拟后台数据

在开发中,后端的接口往往是较晚出来的,但是有时候我们必须给前端页面一些虚假的数据去开发,这个时候一些mock工具就很有必要了,最终我选择了工具,因为它足够简单,而且也能和你们所熟知的...

游魂Andy
2018/07/09
0
0
nodejs(十一)json-server使用教程

一. json-server介绍 json-server:一个在前端本地运行,可以存储数据的server 作用:模拟接口,操作模拟数据 二. json-server的使用 2.1 安装 安装完成之后,可以通过 命令检查是否安装成功...

mapengfei47
09/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周二乱弹 —— 他只能用这个办法劝你注意身体了

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @-冰冰棒- :#今日歌曲推荐# Kodaline《High Hopes》 《High Hopes》- Kodaline 手机党少年们想听歌,请使劲儿戳(这里) @xiaoshiyue :仙女...

小小编辑
11分钟前
415
10
Spring Boot Actuator 整合 Prometheus

简介 Spring Boot 自带监控功能 Actuator,可以帮助实现对程序内部运行情况监控,比如监控状况、Bean加载情况、环境变量、日志信息、线程信息等。这一节结合 Prometheus 、Grafana 来更加直观...

程序员果果
20分钟前
3
0
Linux文件查找命令详解

对于文件查找,我们最好用的还是属于find命令了,在说find命令之前,先把另外几个查找命令介绍一下。 目录 0x01 查询命令介绍 0x02 find命令介绍 0x01 查询命令介绍 在介绍之前,首先先了解一...

无心的梦呓
21分钟前
3
0
快速掌握的测试用例优先级划分方法

怎么样的设计才能算测试用例 引自:IEEE Standard 610 (1990): A set of test inputs, execution conditions, and expected results developed for a particular objective, such as to exe......

测者陈磊
24分钟前
3
0
[mycat]Attribute value "roadNodeId,version" of type NMTOKEN must be a name token

不能逗号配两个字段的主键 primaryKey="roadNodeId,version" Caused by: io.mycat.config.util.ConfigException: org.xml.sax.SAXParseException; lineNumber: 7; columnNumber: 105; Attrib......

Danni3
30分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部