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 相关文章推荐
漂亮但不安全的CTB
Oct 09 PHP
PHPMyAdmin 快速配置方法
May 11 PHP
PHP操作mysql函数详解,mysql和php交互函数
May 19 PHP
php 删除目录下N分钟前创建的所有文件的实现代码
Aug 10 PHP
php使用正则过滤js脚本代码实例
May 10 PHP
PHP 5.3新增魔术方法__invoke概述
Jul 23 PHP
CI框架数据库查询之join用法分析
May 18 PHP
php mysql获取表字段名称和字段信息的三种方法
Nov 13 PHP
PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法
Aug 11 PHP
浅谈PHP中pack、unpack的详细用法
Mar 12 PHP
Laravel find in set排序实例
Oct 09 PHP
聊聊 PHP 8 新特性 Attributes
Aug 19 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上传图片重命名的6种解决方法的详细介绍
2013/04/28 PHP
PHP正则表达式 /i, /is, /s, /isU等介绍
2014/10/23 PHP
php生成年月日下载列表的方法
2015/04/24 PHP
PHP设置images目录不充许http访问的方法
2016/11/01 PHP
php+resumablejs实现的分块上传 断点续传功能示例
2017/04/18 PHP
JavaScript 继承详解(四)
2009/07/13 Javascript
js 回车提交表单两种实现方法
2012/12/31 Javascript
js在输入框屏蔽按键,只能键入数字的示例代码
2014/01/03 Javascript
嵌入式iframe子页面与父页面js通信的方法
2015/01/20 Javascript
Javascript获取统一管理的提示语(message)
2016/02/03 Javascript
JavaScript原生对象常用方法总结(推荐)
2016/05/13 Javascript
JavaScript注入漏洞的原理及防范(详解)
2016/12/04 Javascript
BootStrap学习笔记之nav导航栏和面包屑导航
2017/01/03 Javascript
浅谈angularjs $http提交数据探索
2017/01/20 Javascript
JS使用Date对象实时显示当前系统时间简单示例
2018/08/23 Javascript
iView-admin 动态路由问题的解决方法
2018/10/03 Javascript
vue路由中前进后退的一些事儿
2019/05/18 Javascript
基于vue写一个全局Message组件的实现
2019/08/15 Javascript
修改NPM全局模式的默认安装路径的方法
2020/12/15 Javascript
python简单操作excle的方法
2018/09/12 Python
pygame游戏之旅 添加碰撞效果的方法
2018/11/20 Python
Python爬虫——爬取豆瓣电影Top250代码实例
2019/04/17 Python
深入浅析python 协程与go协程的区别
2019/05/09 Python
python利用wx实现界面按钮和按钮监听和字体改变的方法
2019/07/17 Python
python 基于dlib库的人脸检测的实现
2019/11/08 Python
python生成并处理uuid的实现方式
2020/03/03 Python
python实现文件分片上传的接口自动化
2020/11/19 Python
世界上最大的糖果店:Dylan’s Candy Bar
2017/11/07 全球购物
FC-Moto丹麦:欧洲最大的摩托车服装和头盔商店之一
2019/08/20 全球购物
广州足迹信息技术有限公司Java软件工程师试题
2014/02/15 面试题
高中学生期末评语
2014/04/25 职场文书
微笑服务标语
2014/06/24 职场文书
新闻学专业职业生涯规划范文:我的人生我做主
2014/09/12 职场文书
2015年评职称个人工作总结
2015/10/15 职场文书
2016年大学生实习单位评语
2015/12/01 职场文书
nginx反向代理配置去除前缀案例教程
2021/07/26 Servers