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

  • 相关阅读:
    C# 封装miniblink 使用HTML/CSS/JS来构建.Net 应用程序界面和简易浏览器
    C# Winform实现炫酷的透明动画界面
    造轮子了!NETCore跨平台UI框架,CPF
    用HTML,Vue+element-UI做桌面UI
    造轮子,模仿WPF的UI框架,还没完善。。。
    C# Winform开发以及控件开发的需要注意的,被人问怕了,都是基础常识
    sublime 下面开发
    《快学Scala》
    linux中bin与sbin目录的作用及区别介绍
    hadoop深入研究:(十三)——序列化框架
  • 原文地址:https://www.cnblogs.com/agang-php/p/5210544.html
Copyright © 2020-2023  润新知