今天学RESTful API的编写,发现不知道怎么发送HTTP PUT/PATCH/DELETE请求,还是要学习一个。

使用curl_opt函数来发送各式各样的http请求动作,不仅限于get和post。

在测试自己的restful api的时候,通过访问这个代理发送http put/patch/delete请求的php页面,完成测试。

  1. <?php
  2. /**
  3. * http.php
  4. * 用来向服务器的RESTful API发起各类HTTP请求的工具函数。
  5. *
  6. * 使用: http://mysite.com/http.php?action=xxx
  7. * xxx \in {get,post,put,patch,delete}
  8. *
  9. * Created by PhpStorm.
  10. * User: chris
  11. * Date: 16/8/11
  12. * Time: 下午1:22
  13. */
  14. class commonFunction{
  15. function callInterfaceCommon($URL,$type,$params,$headers){
  16. $ch = curl_init($URL);
  17. $timeout = 5;
  18. if($headers!=""){
  19. curl_setopt ($ch, CURLOPT_HTTPHEADER, $headers);
  20. }else {
  21. curl_setopt ($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
  22. }
  23. curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
  24. curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
  25. switch ($type){
  26. case "GET" : curl_setopt($ch, CURLOPT_HTTPGET, true);break;
  27. case "POST": curl_setopt($ch, CURLOPT_POST,true);
  28. curl_setopt($ch, CURLOPT_POSTFIELDS,$params);break;
  29. case "PUT" : curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "PUT");
  30. curl_setopt($ch, CURLOPT_POSTFIELDS,$params);break;
  31. case "PATCH": curl_setopt($ch, CULROPT_CUSTOMREQUEST, 'PATCH');
  32. curl_setopt($ch, CURLOPT_POSTFIELDS, $params);break;
  33. case "DELETE":curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
  34. curl_setopt($ch, CURLOPT_POSTFIELDS,$params);break;
  35. }
  36. $file_contents = curl_exec($ch);//获得返回值
  37. return $file_contents;
  38. curl_close($ch);
  39. }
  40. }
  41. $params="{user:\"admin\",pwd:\"admin\"}";
  42. //$headers=array('Content-Type: text/html; charset=utf-8');
  43. //$headers=array('accept: application/json; Content-Type:application/json-patch+json');
  44. $headers=array('Content-Type:application/json-patch+json');
  45. #$url=$GLOBALS["serviceUrl"]."/user";
  46. $url='http://mysite.com/user/11';
  47. $cf = new commonFunction();
  48. $action=strtoupper($_GET['action']);
  49. echo "你指定的HTTP请求动作为".$action."<br/><hr/>";
  50. $strResult = $cf->callInterfaceCommon($url,$action,$params,$headers);
  51. echo "执行该HTTP请求动作,得到<br/>".$strResult;

php发送http put/patch/delete请求的更多相关文章

  1. php发送http put/patch/delete请求Demo

    CURL请求对于PHPer是必备技能,使用curl_opt函数来发送各式各样的http请求动作,不仅限于get和post.在测试自己的restful api的时候,通过访问这个代理发送http put ...

  2. 解决SpringMVC put,patch,delete请求数据拿不到的问题

    解决SpringMVC put,patch,delete请求参数拿不到的问题 废话不多说,核心代码如下: 在web.xml中添加如下代码 <!-- 解决web端不能put,delete等请求的问 ...

  3. 在ASP.NET Core中用HttpClient(二)——发送POST, PUT和DELETE请求

    在上一篇文章中,我们已经学习了如何在ASP.NET Core中使用HttpClient从Web API获取数据.此外,我们还学习了如何使用GetAsync方法和HttpRequestMessage类发 ...

  4. 【转】AJAX发送 PUT和DELETE请求注意事项

    jax使用restful服务发送put 和 delete 请求时直接传参会出现问题 一,采用POST  + _method:delete/put  + filter 的方法ajax发送put 和 de ...

  5. AJAX发送 PUT和DELETE请求参数传递注意点,了解一下

    ajax发送put 和 delete 请求时,需要传递参数,如果参数在url地址栏上,则可以正常使用, 如果在 data:中需要传递参数,(浏览器会使用表单提交的方式进行提交) 则需要注意此时应作如下 ...

  6. 使用HttpClient 发送 GET、POST、PUT、Delete请求及文件上传

    package org.caeit.cloud.dev.util; import java.io.File; import java.io.IOException; import java.io.Un ...

  7. springmvc 发送PUT 和 DELETE 请求

    一: 发送 DELETE 或者 PUT 请求: 1.在表单中加入一个隐藏的参数: _method  , 值是 DELETE (或者PUT) <form action="springmv ...

  8. C#发送POST,GET,DELETE请求API,并接受返回值

    发送POST请求 /// <summary> /// API发送POST请求 /// </summary> /// <param name="url" ...

  9. 如何同步发送put或者delete请求

    1.必须把前端发送方式改为post . 2.在web.xml中配置一个filter:HiddenHttpMethodFilter过滤器 3.必须携带一个键值对,key=_method,  value= ...

随机推荐

  1. PHP命令行模式

    <?php error_reporting(E_ALL); header('Content-Type:text/plain;charset=utf-8'); interface CommandA ...

  2. MySQL 的乐观并发控制Optimistic concurrency control

    默认情况下, MySQL的Innodb事务隔离级别是重复读 repeatable read, SELECT @@GLOBAL.tx_isolation, @@tx_isolation;REPEATAB ...

  3. html post和get的区别

    一直以来,都对这两个概念有一个感性的认识,今天总结一下: 1.Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据. 2.Get将表单中数据的按照variable=value的形式,添加 ...

  4. usb驱动开发21之驱动生命线

    现在开始就沿着usb_generic_driver的生命线继续往下走.设备的生命线你可以为是从你的usb设备连接到hub的某个端口时开始,而驱动的生命线就必须得回溯到usb子系统的初始化函数usb_i ...

  5. 有的机器不能通过session登录

    web.config <system.web>    <sessionState mode="InProc" cookieless="AutoDetec ...

  6. DispatcherHelper

    DispatcherHelper 通常,WPF 应用程序从两个线程开始:一个用于处理呈现, 一个用于管理 UI.呈现线程有效地隐藏在后台运行,而 UI 线程则接收输入.处理事件.绘制屏幕 以及运行应用 ...

  7. Spring与Mybatis整合的MapperScannerConfigurer处理过程源码分析

    前言 本文将分析mybatis与spring整合的MapperScannerConfigurer的底层原理,之前已经分析过java中实现动态,可以使用jdk自带api和cglib第三方库生成动态代理. ...

  8. Bootstrap系列 -- 13. 内联表单

    有时候我们需要将表单的控件都在一行内显示.在Bootstrap框架中实现这样的表单效果是轻而易举的,你只需要在<form>元素中添加类名“form-inline”即可 如果你要在input ...

  9. Ubuntu修改文件关联

    * 在system setting>details中可以设置一部分文件关联,很弱很破. * 右键open with只能临时选择打开方式,并且可选的打开方式十分有限.如果是自己编的程序,在列表中没 ...

  10. FlashFXP|FTP

    经典的FTP传输工具FlashFxp,留作几年吧!看和曾经用的软件代表着岁月的流逝和时间的推进性! 洒脱度过生活中的每一天.每一分钟,Mvpbang追随一生! 压缩包中有秘钥文件-flashfxp.k ...