PHP curl 实现RESTful PUT DELETE 实例
客户端
client.php
<?php
//PUT
$curl_handle = curl_init ();
// Set default options.
curl_setopt ( $curl_handle, CURLOPT_URL, ‘http://my.focus.cn/test/socket.php’);
curl_setopt ( $curl_handle, CURLOPT_FILETIME, true );
curl_setopt ( $curl_handle, CURLOPT_FRESH_CONNECT, false );
curl_setopt ( $curl_handle, CURLOPT_HEADER, true );
curl_setopt ( $curl_handle, CURLOPT_RETURNTRANSFER, true );
curl_setopt ( $curl_handle, CURLOPT_TIMEOUT, 5184000 );
curl_setopt ( $curl_handle, CURLOPT_CONNECTTIMEOUT, 120 );
curl_setopt ( $curl_handle, CURLOPT_NOSIGNAL, true );
curl_setopt ( $curl_handle, CURLOPT_HEADER, true );
curl_setopt ( $curl_handle, CURLOPT_CUSTOMREQUEST, ‘PUT’ );
$aHeader[] = “Content-Type:text/xml;charset=UTF-8″;
$aHeader[] = “x-bs-ad:private”;
curl_setopt($curl_handle, CURLOPT_HTTPHEADER, $aHeader);
$file = ‘client.php’;
$file_size = filesize($file);
$h = fopen($file,’r');
curl_setopt ( $curl_handle, CURLOPT_INFILESIZE, $file_size);
curl_setopt ( $curl_handle, CURLOPT_INFILE, $h);
curl_setopt ( $curl_handle, CURLOPT_UPLOAD, true );
$ret = curl_exec ( $curl_handle );
print_r($ret);
?>
DELETE 只要将
$curl_handle = curl_init ();
// Set default options.
curl_setopt ( $curl_handle, CURLOPT_URL, ‘http://my.focus.cn/test/socket.php?file=socket.txt’);
curl_setopt ( $curl_handle, CURLOPT_FILETIME, true );
curl_setopt ( $curl_handle, CURLOPT_FRESH_CONNECT, false );
curl_setopt ( $curl_handle, CURLOPT_HEADER, true );
curl_setopt ( $curl_handle, CURLOPT_RETURNTRANSFER, true );
curl_setopt ( $curl_handle, CURLOPT_TIMEOUT, 5184000 );
curl_setopt ( $curl_handle, CURLOPT_CONNECTTIMEOUT, 120 );
curl_setopt ( $curl_handle, CURLOPT_NOSIGNAL, true );
curl_setopt ( $curl_handle, CURLOPT_CUSTOMREQUEST, ‘DELETE’ );
$ret = curl_exec ( $curl_handle );
服务端
server.php
<?php
$raw_post_data = file_get_contents(‘php://input’, ‘r’);
$method = $_SERVER['REQUEST_METHOD'];
if(‘PUT’ == $method)
{
$headers = apache_request_headers();
file_put_contents(‘socket.txt’,$raw_post_data.print_r($headers,true));
}
else if(‘DELETE’==$method)
{
unlink($_GET['file']);
}
echo ‘<?xml version=”1.0″ encoding=”UTF-8″?><RET>OK</RET>’;
客户端
client.php
<?php
//PUT
$curl_handle = curl_init ();
// Set default options.
curl_setopt ( $curl_handle, CURLOPT_URL, ‘http://my.focus.cn/test/socket.php’);
curl_setopt ( $curl_handle, CURLOPT_FILETIME, true );
curl_setopt ( $curl_handle, CURLOPT_FRESH_CONNECT, false );
curl_setopt ( $curl_handle, CURLOPT_HEADER, true );
curl_setopt ( $curl_handle, CURLOPT_RETURNTRANSFER, true );
curl_setopt ( $curl_handle, CURLOPT_TIMEOUT, 5184000 );
curl_setopt ( $curl_handle, CURLOPT_CONNECTTIMEOUT, 120 );
curl_setopt ( $curl_handle, CURLOPT_NOSIGNAL, true );
curl_setopt ( $curl_handle, CURLOPT_HEADER, true );
curl_setopt ( $curl_handle, CURLOPT_CUSTOMREQUEST, ‘PUT’ );
$aHeader[] = “Content-Type:text/xml;charset=UTF-8″;
$aHeader[] = “x-bs-ad:private”;
curl_setopt($curl_handle, CURLOPT_HTTPHEADER, $aHeader);
$file = ‘client.php’;
$file_size = filesize($file);
$h = fopen($file,’r');
curl_setopt ( $curl_handle, CURLOPT_INFILESIZE, $file_size);
curl_setopt ( $curl_handle, CURLOPT_INFILE, $h);
curl_setopt ( $curl_handle, CURLOPT_UPLOAD, true );
$ret = curl_exec ( $curl_handle );
print_r($ret);
?>
DELETE 只要将
$curl_handle = curl_init ();
// Set default options.
curl_setopt ( $curl_handle, CURLOPT_URL, ‘http://my.focus.cn/test/socket.php?file=socket.txt’);
curl_setopt ( $curl_handle, CURLOPT_FILETIME, true );
curl_setopt ( $curl_handle, CURLOPT_FRESH_CONNECT, false );
curl_setopt ( $curl_handle, CURLOPT_HEADER, true );
curl_setopt ( $curl_handle, CURLOPT_RETURNTRANSFER, true );
curl_setopt ( $curl_handle, CURLOPT_TIMEOUT, 5184000 );
curl_setopt ( $curl_handle, CURLOPT_CONNECTTIMEOUT, 120 );
curl_setopt ( $curl_handle, CURLOPT_NOSIGNAL, true );
curl_setopt ( $curl_handle, CURLOPT_CUSTOMREQUEST, ‘DELETE’ );
$ret = curl_exec ( $curl_handle );
服务端
server.php
<?php
$raw_post_data = file_get_contents(‘php://input’, ‘r’);
$method = $_SERVER['REQUEST_METHOD'];
if(‘PUT’ == $method)
{
$headers = apache_request_headers();
file_put_contents(‘socket.txt’,$raw_post_data.print_r($headers,true));
}
else if(‘DELETE’==$method)
{
unlink($_GET['file']);
}
echo ‘<?xml version=”1.0″ encoding=”UTF-8″?><RET>OK</RET>’;
转载于:https://www.cnblogs.com/yuliang8/p/6621721.html
PHP curl 实现RESTful PUT DELETE 实例相关推荐
- php 如何发送json数据格式,Php如何使用curl发送json格式数据实例
Php 如何使用curl发送json格式数据实例 Php 如何使用curl发送json格式数据实例 这篇文章主要介绍了php使用curl发送json格式数据的实例,大家参考使用吧 代码如下: $url ...
- java restful接口开发实例_Spring Boot 中 10 行代码构建 RESTful 风格应用!
点击上方"Java后端技术",选择"置顶或者星标" 你关注的就是我关心的! 作者:江南一点雨 微信公众号:牧码小子(ID:a_javaboy) 推荐阅读:10个 ...
- python中restful接口开发实例_Python RESTful接口开发02
什么是RESTful RESTful是一种设计思想,一种风格. RESTful主要包括 资源 和 对资源的操作. 资源: 对实体的抽象,图书.音乐.电影.学生等都属于资源. 对资源的操作: ===== ...
- php5.4 curl,PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
本文实例分析了PHP5.0~5.6 各版本兼容性cURL文件上传功能.分享给大家供大家参考,具体如下: 最近做的一个需求,要通过PHP调用cURL,以multipart/form-data格式上传文件 ...
- restful接口开发实例_Restful接口开发与测试—接口测试
开发完接口,接下来我们需要对我们开发的接口进行测试.接口测试的方法比较多,使用接口工具或者Python来测试都可以,工具方面比如之前我们学习过的Postman或者Jmeter ,Python脚本测试可 ...
- php curl发送delte,php Curl如何发起POST DELETE GET POST请求
关于POST,DELETE,GET,POST请求 get:是用来取得数据.其要传递过的信息是拼在url后面,因为其功能使然,有长度的限制 post:是用来上传数据.要上传的数据放在request的he ...
- restful接口开发实例_Spring Boot 中 10 行代码构建 RESTful 风格应用
松哥原创的四套视频教程已经全部杀青,感兴趣的小伙伴戳这里-->Spring Boot+Vue+微人事视频教程 RESTful ,到现在相信已经没人不知道这个东西了吧!关于 RESTful 的概念 ...
- SpringMVC(三)Restful风格及实例、参数的转换
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.Restful风格 1.Restful风格的介绍 Restful 一种软件架构风格.设计风格,而不是 ...
- php thinkphp curl 模拟post,put,delete,get 请求
function curl($url,$method,$params,$auth){ //初始化CURL句柄 $curl = curl_init(); curl_setopt( ...
最新文章
- Verilog 编写规范
- C++后端向JS前端转换
- 有问有答 | 你真的理解微服务架构吗?
- cpu时间片 linux,能讲一下在Linux系统中时间片是怎么分配的还有优先级的具体算法是...
- Linux一个坑-安装pip更新源
- javascript 不让成为nan_JavaScript高级,第一集
- 最近很热衷于研究相册效果:)
- 《巴伦周刊》:除了芯片,英特尔还是一家顶级风投
- Hyper-V 3.0 - 关于存储迁移的一些说明
- 数学建模常用模型简介其他模型大全汇总
- Linux杂谈之unzip命令
- 大学本科基于html5毕业设计题目50例
- tp打印服务器修改ip,tp打印服务器和网络打印机安装方法.docx
- 贴片电解电容正负极区分
- ES2016/ES2017/ES2018/ES2019 新语法
- Django之自定义 form 表单上传图片
- python调用大漠写辅助_Python调用大漠插件
- Nachos环境搭建
- 五款数字孪生软件大比拼:优缺点分析测评报告
- arduino控制物联网平台微型花园系统设计