class HttpCurl
{
//控客云平台的appid
private $appId = xxxxxx;
//控客云平台的appkey
private $appKey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxx'; //控客接口请求地址
protected $url = 'https://xxxxxxxxxxx/1.0/';
//接口请求要求host必须为api.developer.hijaytech.com
protected $host = 'api.developer.hijaytech.com'; //设置的接口请求头信息集合
protected $headerArr = '';
protected $pragma = 'no-cache';
protected $accept = 'application/json';
protected $contentType = 'application/json'; public function __construct()
{
$this->setHeader();
} /**
* 设置请求接口的头信息,开发文档中的一些固定的头信息参数
*/
protected function setHeader()
{
$arr = array(
'Host:' . $this->host,
'Pragma:' . $this->pragma,
'Accept:' . $this->accept,
'Content-Type:' . $this->contentType,
'appId:' . $this->appId,
'appKey:' . $this->appKey,
);
$this->headerArr = $arr;
} /**
* 接口的请求方法
* @param string $url 接口的具体访问地址
* @param array $data 请求数据 默认是get方式请求。为空数组
* @param string $method 接口的请求方式post,get,delete,put
* @param array $header 接口的请求头,拓展,在默认固定的基础上可以再添加
* @return array 数据结果集合array(
* 'res' => $res, //请求状态是失败还是成功
* 'mes' => $mes, //请求失败的错误信息
* 'data' => $data //请求失败对应的数据
* );
*/
protected function curlRequest($url, $data = array(), $method = 'post', $header = array())
{ //初始化curl_init()
$ch = curl_init();
//设置请求的url
curl_setopt($ch, CURLOPT_URL, $url);
//设置是否接受返回结果
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 显示返回的Header区域内容
curl_setopt($ch, CURLOPT_HEADER, false); //设置端口号
curl_setopt($ch, CURLOPT_PORT, 4432); //https请求时会要求验证证书(ssl证书)
// $sslPath = ''; // $ssl = substr($url, 0, 8) == 'https://' ? true : false;
// if($ssl){
// curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,true);
// curl_setopt($ch,CURLOPT_CAINFO,$sslPath);
// curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);
// }else{
// curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); //这个是重点,跳过证书
// curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
// }
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //这个是重点,跳过证书
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在 //根据不同的请求方式设置对应的参数
switch ($method) {
case 'get':
curl_setopt($ch, CURLOPT_HTTPGET, true);
break;
case 'post':
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
break;
case 'delete':
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
break;
case 'put':
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
break;
default :
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
break;
} //自定义请求头信息
if (count($header) <= 0) {
curl_setopt($ch, CURLOPT_HTTPHEADER, $this->headerArr);
} else {
$headers = $this->headerArr;
$headerArr = array_merge($headers, $header);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headerArr);
}
//返回一个json数据
$result = curl_exec($ch); if (curl_error($ch)) {
$resArr = $this->returnRes('fail', curl_error($ch), $data);
curl_close($ch);
return $resArr;
}
curl_close($ch); //将返回数据格式化为数组形式
$resData = json_decode($result, true); if(isset($resData['error_code'])&&$resData['error_code']!==0){
$resArr = $this->returnRes('fail', $resData['error_msg'], $data);
return $resArr;
} //统一返回的数据格式
$resArr = $this->returnRes('success', '', $resData);
return $resArr;
} public function returnRes($res, $mes, $data)
{
return array(
'res' => $res, //请求状态是失败还是成功
'mes' => $mes, //请求失败的错误信息
'data' => $data //请求失败对应的数据
);
} }

curl请求的get.post.put.delete对接其他系统接口方法的更多相关文章

  1. PHP 之CURL请求封装GET、POST、PUT、DELETE

    /** * @Description: curl请求 * @Author: Yang * @param $url * @param null $data * @param string $method ...

  2. php curl请求和获取接口数据

    curl请求和获取接口数据 class ToolModel{ /** * [http 调用接口函数] * @Author GeorgeHao * @param string $url [接口地址] * ...

  3. curl请求的url中含有空格

    curl请求的url中含有空格时(例如rul的参数是sql查询语句,url=www.tets.com/query.php?sql=select * from t1),curl_easy_perform ...

  4. Curl 请求数据多’1‘

    今天做curl请求时遇到一个问题 数据请求回来,无缘无故多了1 加上这一行代码就就可以了:curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

  5. php(curl请求)测试接口案例

    请求测试接口,如下: $data = [']; $result = curlrequest($apiUrl,$data); ){ echo json_encode($result); }else{ e ...

  6. php curl请求回来的中文为乱码

    在浏览器访问回来的编码格式是正常的,但是从php curl 请求过来的确实乱码,之前也试过这个函数好像不行,今天吧最后一个参数换了,简单粗暴,可以了mb_convert_encoding($res, ...

  7. php-fpm nginx 使用 curl 请求 https 出现 502 错误

    用php curl请求https的url出现502错误,请求帮忙解决. PHP版本:5.6.7Nginx版本:1.8.0 代码如下: $ch = curl_init(); curl_setopt($c ...

  8. php之接口内curl请求其他接口

    今天遇到一个需要写curl的需求,情况是这样的: 同一应用的A系统(购物系统),B系统(答题系统)相互独立,用户数据全部存在于A系统的数据库中, 现在处于B系统的某项操作中,需要在B系统中验证当前请求 ...

  9. PHP使用curl请求https站点的常见错误及解决方案

    使用curl请求http站点和https站点最大的不同就是https站点有证书验证这一环节,如果证书验证不通过则无法发起请求,不管是请求什么类型的站点遇到问题时先把错误码打印出来看一下,打印错误码的代 ...

随机推荐

  1. 测试WPF绑定bug

    1.低级错误:有没有绑错2.去属性那里打断点,get.set有没有进3.xaml加上twoway,UpdateSourceTrigger=PropertyChanged

  2. SICP 1.6-1.8

    1.6由于scheme应用序求值的性质,该函数会陷入循环(一直计算 improve guess x) 1.7 值过小,0.001这个精度远远不够... 值过大,由于浮点数精度有限,(比如使用IEEE7 ...

  3. Linux ssh密钥自动登录 专题

    在开发中,经常需要从一台主机ssh登陆到另一台主机去,每次都需要输一次login/Password,很繁琐.使用密钥登陆就可以不用输入用户名和密码了 实现从主机A免密码登陆到主机B(即把主机A的pub ...

  4. 用友u8各版本在输出的时候报错提示:外部数据库驱动程序(1)中的意外错误

    从10月12日起很多U8用户反馈,在各版本U8中输出报表时软件报错,报错内容“外部数据库驱动程序(1)中的意外错误”,经初步分析有以下解决方案:1.卸载微软的补丁:(1)如果是PC操作系统(一般是客户 ...

  5. 高手问答精选:Go 语言 —— 云计算时代的 C 语言(类似于一个FAQ)

    Go 语言被称为云计算时代的 C 语言,它在软件开发效率和运行效率之间做出了绝佳的权衡.这使得它既适应于互联网应用的极速开发,又能在高并发.高性能的开发场景中如鱼得水.正因如此,许多互联网公司,尤其是 ...

  6. 图像滤镜艺术---Hudson滤镜(Instagram)

    原文:图像滤镜艺术---Hudson滤镜(Instagram)     今天给大家实现的是Instagram中的Hudson滤镜,为什么介绍Instagram滤镜,原因很简单,Instagram本身就 ...

  7. 内存页面的各种属性(就是Read, Write, Execute的组合)

    PAGE_NOACCESS 禁止写入执行读取查看进程内存区域能发现,NOACCESS属性的内存页面都是FREE状态的(未提交使用的内存区域),只有内存区域最后的0x7FFE1000-0x7FFF000 ...

  8. 『SHELL』--SHELL脚本执行方式(转)

    Shell脚本的执行方式: 注明:wd代表“脚本保存的目录” 1.fork 语法:/wd/shell.sh fork是最普通的, 就是直接在脚本里面用/wd/shell.sh来调用shell.sh这个 ...

  9. 学在LINUX下编程(各种情况比较详细)

    (from http://www.712100.com/bbs/redirect.php?fid=160&tid=191752&goto=nextnewset)   预备知识 用gcc ...

  10. 3013C语言_输入输出

    第三章 输入输出 3.1输入输出概念及其实现 (1)数据从计算机内部向外部输出设备(如显示器.打印机等)输送的操作称为 “输出”,数据从计算机外部向输入设备(如键盘.鼠标.扫描仪等)送入的操作称为 “ ...