PHP利用curl发送HTTP请求的实例代码


Posted in PHP onJuly 09, 2020

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和用户名+密码的认证。

PHP中使用cURL实现Get和Post请求的方法

这些函数在PHP 4.0.2中被引入。

实例

因为需要在 php 开发中对接其它接口需要用 php curl 去对接其它接口 我把他们封装成函数 希望能对大家有所帮助。

这里面是封装好的会自动把 data 进行转成 json 格式,同时解码成 php 数组输出。

<?php
function geturl($url){
    $headerArray =array("Content-type:application/json;","Accept:application/json");
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch,CURLOPT_HTTPHEADER,$headerArray);
    $output = curl_exec($ch);
    curl_close($ch);
    $output = json_decode($output,true);
    return $output;
}


function posturl($url,$data){
    $data = json_encode($data);  
    $headerArray =array("Content-type:application/json;charset='utf-8'","Accept:application/json");
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,FALSE);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    curl_setopt($curl,CURLOPT_HTTPHEADER,$headerArray);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $output = curl_exec($curl);
    curl_close($curl);
    return json_decode($output,true);
}


function puturl($url,$data){
  $data = json_encode($data);
  $ch = curl_init(); //初始化CURL句柄 
  curl_setopt($ch, CURLOPT_URL, $url); //设置请求的URL
  curl_setopt ($ch, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
  curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //设为TRUE把curl_exec()结果转化为字串,而不是直接输出 
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST,"PUT"); //设置请求方式
  curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//设置提交的字符串
  $output = curl_exec($ch);
  curl_close($ch);
  return json_decode($output,true);
}

function delurl($url,$data){
  $data = json_encode($data);
  $ch = curl_init();
  curl_setopt ($ch,CURLOPT_URL,$put_url);
  curl_setopt ($ch, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
  curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "DELETE");  
  curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
  $output = curl_exec($ch);
  curl_close($ch);
  $output = json_decode($output,true);
}

function patchurl($url,$data){
  $data = json_encode($data);
  $ch = curl_init();
  curl_setopt ($ch,CURLOPT_URL,$url);
  curl_setopt ($ch, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
  curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "PATCH"); 
  curl_setopt($ch, CURLOPT_POSTFIELDS,$data);   //20170611修改接口,用/id的方式传递,直接写在url中了
  $output = curl_exec($ch);
  curl_close($ch);
  $output = json_decode($output);
  return $output;
}
?>

以上就是PHP利用curl发送HTTP请求的实例代码的详细内容,更多关于PHP 发送HTTP请求的资料请关注三水点靠木其它相关文章!

PHP 相关文章推荐
第五节 克隆 [5]
Oct 09 PHP
php判断字符以及字符串的包含方法属性
Aug 30 PHP
解决phpmyadmin中缺少mysqli扩展问题的方法
May 06 PHP
php用header函数实现301跳转代码实例
Nov 25 PHP
PHP判断一个gif图片是否为动态图片的方法
Nov 19 PHP
thinkphp模板用法和内容输出实例
Nov 28 PHP
thinkPHP5.0框架引入Traits功能实例分析
Mar 18 PHP
PHP接口继承及接口多继承原理与实现方法详解
Oct 18 PHP
利用PHP扩展Xhprof分析项目性能实践教程
Sep 05 PHP
[原创]PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】
Jul 12 PHP
php中yar框架实例用法讲解
Dec 27 PHP
ThinkPHP5和ThinkPHP6的区别
Mar 31 PHP
PHP使用POP3读取邮箱接收邮件的示例代码
Jul 08 #PHP
phpmyadmin在宝塔面板里进不去的解决方案
Jul 06 #PHP
详解PHP中的8个魔术常量
Jul 06 #PHP
php 利用socket发送GET,POST请求的实例代码
Jul 04 #PHP
PHP实现递归的三种方法
Jul 04 #PHP
laravel开发环境homestead搭建过程详解
Jul 03 #PHP
PHP7原生MySQL数据库操作实现代码
Jul 03 #PHP
You might like
新52大事件
2020/03/03 欧美动漫
解析PHP实现下载文件的两种方法
2013/07/05 PHP
thinkphp实现发送邮件密码找回功能实例
2014/12/01 PHP
PHP封装的数据库保存session功能类
2016/07/11 PHP
PHP实现简易blog的制作
2016/10/24 PHP
jQuery基础知识filter()和find()实例说明
2010/07/06 Javascript
js 3种归并操作的实例代码
2013/10/30 Javascript
node.js中的querystring.unescape方法使用说明
2014/12/10 Javascript
Bootstrap创建可折叠的组件
2016/02/23 Javascript
AngularJS 限定$scope的范围实例详解
2017/06/23 Javascript
js基于FileSaver.js 浏览器导出Excel文件的示例
2017/08/15 Javascript
View.post() 不靠谱的地方你知道多少
2017/08/29 Javascript
把JavaScript代码改成ES6语法不完全指南(分享)
2017/09/10 Javascript
angularJs利用$scope处理升降序的方法
2018/10/08 Javascript
layer弹出层取消遮罩的方法
2019/09/25 Javascript
使用element-ui +Vue 解决 table 里包含表单验证的问题
2020/07/17 Javascript
如何在JS文件中获取Vue组件
2020/09/16 Javascript
微信小程序实现打卡签到页面
2020/09/21 Javascript
解决antd的Form组件setFieldsValue的警告问题
2020/10/29 Javascript
[01:48]DOTA2 2015国际邀请赛中国区预选赛第二日战报
2015/05/27 DOTA
Python函数返回值实例分析
2015/06/08 Python
windows10系统中安装python3.x+scrapy教程
2016/11/08 Python
django请求返回不同的类型图片json,xml,html的实例
2018/05/22 Python
Python中pymysql 模块的使用详解
2019/08/12 Python
pytorch GAN生成对抗网络实例
2020/01/10 Python
python TCP包注入方式
2020/05/05 Python
Python pexpect模块及shell脚本except原理解析
2020/08/03 Python
如何通过python计算圆周率PI
2020/11/11 Python
如何利用CSS3制作3D效果文字具体实现样式
2013/05/02 HTML / CSS
美国复古街头服饰精品店:Need Supply Co.
2017/02/22 全球购物
2014年应届大学生自我评价
2014/01/09 职场文书
促销活动策划方案
2014/01/12 职场文书
图书馆志愿者活动总结
2014/06/27 职场文书
2015年物业管理工作总结
2015/04/23 职场文书
《天净沙·秋思》教学反思三篇
2019/11/02 职场文书
Python Matplotlib绘制两个Y轴图像
2022/04/13 Python