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>';

PHP curl 实现RESTful PUT DELETE 实例的更多相关文章

  1. 【转】php curl 伪造IP来源的实例代码

    curl发出请求的文件fake_ip.php: 代码 复制代码 代码如下: <?php $ch = curl_init(); $url = "http://localhost/targ ...

  2. php curl 伪造IP来源的实例代码

    来源:http://www.jb51.net/article/31694.htm curl 它不但可以模仿用户登录,还可以模仿用户IP地址哦,为伪造IP来源,本实例仅供参考哦 //伪造ip ; $i ...

  3. PHP中使用CURL模拟文件上传实例

    调用实例: 该方法将本地的E盘文件test.doc上传到接口服务器上的 uploadFile方法中,uploadFile会对上传的文件做进一步处理. 若你想自己对上传的文件做操作,将接口uploadF ...

  4. 比 file_get_contents() 更优的 cURL 详解(附实例)

    PHP 可以使用 file_get_content() 函数抓取网页内容,但却无法进行更复杂的处理,譬如文件的上传或下载. Cookie 操作等等.而 cURL 提供了这些功能. 一.cURL简介 在 ...

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

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

  6. cURL的几个经典实例

    1.cURL请求的基本步骤: (1)初始化 (2)设置选项,包括URL (3)执行并获取HTML文档内容 (4)释放cURL句柄 <?php //1.初始化 $ch = curl_init(); ...

  7. RESTful WebService 入门实例

      /* 新建MavenProject,使用以下代码,创建类和POM文件.使用命令行切换到Project根目录,运行mvn package(或者,选中pom.xml 文件右键单击 > run a ...

  8. Spring4 MVC RESTFul WebServices CRUD实例+RestTemplate

    简单介绍REST REST 表示状态传输.这是一个体系结构样式,可用于设计网络服务,可以被各种客户端消耗.核心思想是,不使用如CORBA,RPC或SOAP复杂的机制在机器之间进行连接,简单的 HTTP ...

  9. RESTFul Client入门实例

    client.html文件内容为: <!DOCTYPE html> <html> <head> <title>RESTFul Client test p ...

随机推荐

  1. crontab每秒执行URL接口

    首先crontab -e打开进行编辑 添加以下代码(默认为每秒执行一次脚本crontab.sh): * * * * * /bin/sh /var/www/aa/crontab.sh 下面是/var/w ...

  2. android.widget.Toast

    widget 小部件 toast 烤面包 Toast.makeText(当前活动, 信息, 时间长短) 例:Toast.makeText(FirstActivity.this, "You c ...

  3. 解决AndroidStudio中文乱码问题

    File→Settings Appearance.将Theme(皮肤)选为Windows.

  4. python之在线PK游戏(第六天)

      本节作业: 熟练使用类和模块,写一个交互性强.有冲突的程序. 故本次写了一个文字回合制的PK游戏,系统主程序为根目录下的:game_menu.py 1. 系统功能模块: 第六天的作业:文字游戏程序 ...

  5. jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法

    jQuery(function ($) {    // 备份jquery的ajax方法        var _ajax = $.ajax;    // 重写ajax方法,先判断登录在执行succes ...

  6. Linux内核USB驱动【转】

    本文转载自:http://www.360doc.com/content/12/0321/14/8363527_196286673.shtml 注意,该文件是2.4的内核的驱动源文件,并不保证在2.6内 ...

  7. Connect to Database Using Custom params链接数据库配置参数说明

    使用RF的关键字Connect to Database Using Custom params链接数据库,对应的参数说明: a)     第一个参数我使用的是cx_Oracle,就写这个 b)     ...

  8. Codeforces 747D:Winter Is Coming(贪心)

    http://codeforces.com/problemset/problem/747/D 题意:有n天,k次使用冬天轮胎的机会,无限次使用夏天轮胎的机会,如果t<=0必须使用冬轮,其他随意. ...

  9. 应用ERP系统与企业的关系

      随着ERP系统的深入发展,越来越多的企业开始实施ERP,ERP实施是借用一种新的管理模式来改造原企业旧的管理模式,是先进的.行之有效的管理思想和方法.ERP软件在实际的推广应用中,其应用深度和广度 ...

  10. Java中ProcessBuilder应用实例

    系列说明 浅析Java.lang.Runtime类 浅析Java.lang.Process类 浅析Java.lang.ProcessBuilder类 可以使用java中的ProcessBuilder执 ...