客户端

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 实例相关推荐

  1. php 如何发送json数据格式,Php如何使用curl发送json格式数据实例

    Php 如何使用curl发送json格式数据实例 Php 如何使用curl发送json格式数据实例 这篇文章主要介绍了php使用curl发送json格式数据的实例,大家参考使用吧 代码如下: $url ...

  2. java restful接口开发实例_Spring Boot 中 10 行代码构建 RESTful 风格应用!

    点击上方"Java后端技术",选择"置顶或者星标" 你关注的就是我关心的! 作者:江南一点雨 微信公众号:牧码小子(ID:a_javaboy) 推荐阅读:10个 ...

  3. python中restful接口开发实例_Python RESTful接口开发02

    什么是RESTful RESTful是一种设计思想,一种风格. RESTful主要包括 资源 和 对资源的操作. 资源: 对实体的抽象,图书.音乐.电影.学生等都属于资源. 对资源的操作: ===== ...

  4. php5.4 curl,PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析

    本文实例分析了PHP5.0~5.6 各版本兼容性cURL文件上传功能.分享给大家供大家参考,具体如下: 最近做的一个需求,要通过PHP调用cURL,以multipart/form-data格式上传文件 ...

  5. restful接口开发实例_Restful接口开发与测试—接口测试

    开发完接口,接下来我们需要对我们开发的接口进行测试.接口测试的方法比较多,使用接口工具或者Python来测试都可以,工具方面比如之前我们学习过的Postman或者Jmeter ,Python脚本测试可 ...

  6. php curl发送delte,php Curl如何发起POST DELETE GET POST请求

    关于POST,DELETE,GET,POST请求 get:是用来取得数据.其要传递过的信息是拼在url后面,因为其功能使然,有长度的限制 post:是用来上传数据.要上传的数据放在request的he ...

  7. restful接口开发实例_Spring Boot 中 10 行代码构建 RESTful 风格应用

    松哥原创的四套视频教程已经全部杀青,感兴趣的小伙伴戳这里-->Spring Boot+Vue+微人事视频教程 RESTful ,到现在相信已经没人不知道这个东西了吧!关于 RESTful 的概念 ...

  8. SpringMVC(三)Restful风格及实例、参数的转换

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.Restful风格 1.Restful风格的介绍 Restful 一种软件架构风格.设计风格,而不是 ...

  9. php thinkphp curl 模拟post,put,delete,get 请求

    function curl($url,$method,$params,$auth){     //初始化CURL句柄         $curl = curl_init(); curl_setopt( ...

最新文章

  1. Verilog 编写规范
  2. C++后端向JS前端转换
  3. 有问有答 | 你真的理解微服务架构吗?
  4. cpu时间片 linux,能讲一下在Linux系统中时间片是怎么分配的还有优先级的具体算法是...
  5. Linux一个坑-安装pip更新源
  6. javascript 不让成为nan_JavaScript高级,第一集
  7. 最近很热衷于研究相册效果:)
  8. 《巴伦周刊》:除了芯片,英特尔还是一家顶级风投
  9. Hyper-V 3.0 - 关于存储迁移的一些说明
  10. 数学建模常用模型简介其他模型大全汇总
  11. Linux杂谈之unzip命令
  12. 大学本科基于html5毕业设计题目50例
  13. tp打印服务器修改ip,tp打印服务器和网络打印机安装方法.docx
  14. 贴片电解电容正负极区分
  15. ES2016/ES2017/ES2018/ES2019 新语法
  16. Django之自定义 form 表单上传图片
  17. python调用大漠写辅助_Python调用大漠插件
  18. Nachos环境搭建
  19. 五款数字孪生软件大比拼:优缺点分析测评报告
  20. arduino控制物联网平台微型花园系统设计

热门文章

  1. java_泛型 TreeSet 判断hashcode/length(升序排列)
  2. paip.按键替换映射总结
  3. 云计算服务在小企业中的作用?
  4. 微软谈开源、赦盗版背后的商业逻辑
  5. 跟我一起学extjs5(05--主界面上增加顶部和底部区域)
  6. windows和linux文件的转换
  7. Tomcat 的数据库连接池设置与应用
  8. 局域网防雷电***实用解决方案
  9. iOS开发- OpenGL ES屏幕截图
  10. canvas绘制时钟