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 相关文章推荐
PHP 文章中的远程图片采集到本地的代码
Jul 30 PHP
php数组函数序列之array_keys() - 获取数组键名
Oct 30 PHP
2个比较经典的PHP加密解密函数分享
Jul 01 PHP
简单实用的网站PHP缓存类实例
Jul 18 PHP
PHPStrom中实用的功能和快捷键大全
Sep 23 PHP
如何使用GDB调试PHP程序
Dec 08 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
May 16 PHP
Zend Framework使用Zend_Loader组件动态加载文件和类用法详解
Dec 09 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
Jul 19 PHP
laravel 5.4中实现无限级分类的方法示例
Jul 27 PHP
PHP实现的链式队列结构示例
Sep 15 PHP
Laravel框架定时任务2种实现方式示例
Dec 08 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
php面向对象的方法重载两种版本比较
2008/09/08 PHP
解析php 版获取重定向后的地址(代码)
2013/06/26 PHP
Apache实现Web Server负载均衡详解(不考虑Session版)
2013/07/05 PHP
php实现插入排序
2015/03/29 PHP
PHP MSSQL 分页实例
2016/04/13 PHP
FCK调用方法..
2006/12/21 Javascript
javascript URL锚点取值方法
2009/02/25 Javascript
关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级
2010/10/14 Javascript
Jquery为a标签的href赋值实现代码
2013/05/03 Javascript
分享20个提升网站界面体验的jQuery插件
2014/12/15 Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
2015/12/10 Javascript
MVC+jQuery.Ajax异步实现增删改查和分页
2020/12/22 Javascript
微信JSAPI支付操作需要注意的细节
2017/01/10 Javascript
jQuery实现div跟随鼠标移动
2020/08/20 jQuery
Vue.js常用指令的使用小结
2017/06/23 Javascript
angular或者js怎么确定选中ul中的哪几个li
2017/08/16 Javascript
JS实现标签滚动切换效果
2017/12/25 Javascript
JavaScript寄生组合式继承实例详解
2018/01/06 Javascript
一个简单的node.js界面实现方法
2018/06/01 Javascript
在Vue项目中使用snapshot测试的具体使用
2019/04/16 Javascript
vue登录页面cookie的使用及页面跳转代码
2019/07/10 Javascript
如何手写简易的 Vue Router
2020/10/10 Javascript
[32:07]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第一场 12.16
2020/12/17 DOTA
python转换摩斯密码示例
2014/02/16 Python
1分钟快速生成用于网页内容提取的xslt
2018/02/23 Python
python3.4实现邮件发送功能
2018/05/28 Python
pd.DataFrame统计各列数值多少的实例
2019/12/05 Python
Python基于pandas绘制散点图矩阵代码实例
2020/06/04 Python
简单html5代码获取地理位置
2014/03/31 HTML / CSS
html5简介_动力节点Java学院整理
2017/07/07 HTML / CSS
小学生期末自我鉴定
2014/01/19 职场文书
优秀教师先进事迹
2014/01/22 职场文书
委托书范文
2014/04/02 职场文书
入党现实表现材料
2014/12/23 职场文书
三严三实·严以用权心得体会
2016/01/12 职场文书
nginx配置文件使用环境变量的操作方法
2021/06/02 Servers