今天学RESTful API的编写,发现不知道怎么发送HTTP PUT/PATCH/DELETE请求,还是要学习一个。
使用curl_opt函数来发送各式各样的http请求动作,不仅限于get和post。
在测试自己的restful api的时候,通过访问这个代理发送http put/patch/delete请求的php页面,完成测试。

<?php
/*** http.php* 用来向服务器的RESTful API发起各类HTTP请求的工具函数。** 使用: http://mysite.com/http.php?action=xxx* xxx \in {get,post,put,patch,delete}** Created by PhpStorm.* User: chris* Date: 16/8/11* Time: 下午1:22*/class commonFunction{function callInterfaceCommon($URL,$type,$params,$headers){$ch = curl_init($URL);$timeout = 5;if($headers!=""){curl_setopt ($ch, CURLOPT_HTTPHEADER, $headers);}else {curl_setopt ($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));}curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);switch ($type){case "GET" : curl_setopt($ch, CURLOPT_HTTPGET, true);break;case "POST": curl_setopt($ch, CURLOPT_POST,true);curl_setopt($ch, CURLOPT_POSTFIELDS,$params);break;case "PUT" : curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "PUT");curl_setopt($ch, CURLOPT_POSTFIELDS,$params);break;case "PATCH": curl_setopt($ch, CULROPT_CUSTOMREQUEST, 'PATCH');curl_setopt($ch, CURLOPT_POSTFIELDS, $params);break;case "DELETE":curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "DELETE");curl_setopt($ch, CURLOPT_POSTFIELDS,$params);break;}$file_contents = curl_exec($ch);//获得返回值return $file_contents;curl_close($ch);}
}$params="{user:\"admin\",pwd:\"admin\"}";
//$headers=array('Content-Type: text/html; charset=utf-8');
//$headers=array('accept: application/json; Content-Type:application/json-patch+json');
$headers=array('Content-Type:application/json-patch+json');
#$url=$GLOBALS["serviceUrl"]."/user";
$url='http://mysite.com/user/11';
$cf = new commonFunction();$action=strtoupper($_GET['action']);
echo "你指定的HTTP请求动作为".$action."<br/><hr/>";$strResult = $cf->callInterfaceCommon($url,$action,$params,$headers);
echo "执行该HTTP请求动作,得到<br/>".$strResult;

php发送http put/patch/delete请求相关推荐

  1. Golang gin框架:发送GET POST PUT DELETE请求

    package mainimport ("net/http""github.com/gin-gonic/gin" )func main() {r := gin. ...

  2. fastadmin使用fast\Http 发送post/get/patch等请求,参数为二维数组时候报错,怎么解决?

    之前受邀回答了这么一个问题: 在后端发请求时,如果参数里面是数组,就会报错"Array to string conversion",大概意思就是数组转字符串的时候出错了. 先说解决 ...

  3. (转)【SpringMvc】如何使用form发送PUT和DELETE请求

    转自:   https://blog.csdn.net/cockroach02/article/details/82194126https://blog.csdn.net/cockroach02/ar ...

  4. springboot接收浏览器发送delete请求( method not allowed 405解决方法)

    [README] 浏览器使用form提交信息的时候只支持GET和POST,如果需要在浏览器上使用PUT和DELETE请求方式的话,只能使用欺骗的方式了,SpringMvc提供了HiddenHttpMe ...

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

    httpclient4.3.6 下进行的测试 package org.caeit.cloud.dev.util; import java.io.File; import java.io.IOExcep ...

  6. springmvc 发送PUT 和 DELETE 请求

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

  7. jsp中Ajax请求发送PUT、DELETE请求的方式_刘锋的博客

    jsp中Ajax请求发送PUT.DELETE请求的方式 方式一 首先配置pom.xml ,添加过滤器 <filter><filter-name>hiddenHttpMethod ...

  8. gin使用 GET, POST, PUT, PATCH, DELETE, OPTIONS

    使用 GET, POST, PUT, PATCH, DELETE, OPTIONS func main() { // Disable Console Color // gin.DisableConso ...

  9. Tornado的同步API写法举例实现GET/POST/DELETE请求+Tornado获取post请求中的json数据(转载)

    下面的实验主要来自[1][2],但是对实验2的代码进行了修改,修改过程参考了[3] #---------------------------------------------------实验1--- ...

最新文章

  1. 构建负载均衡服务器之二 LVS详解及应用
  2. Python通过代理ip访问网站
  3. WPF的Clipboard.SetText()有问题
  4. python实现新闻网站_如何用 100 行 Python 代码实现新闻爬虫?这样可算成功?
  5. Distributed TensorFlow
  6. 线程间通信之eventfd
  7. ng bind html 无效,angularjs中ng-bind-html的用法总结
  8. html柳树动画,3D教程-柳树生长动画
  9. 关于安装AccessDatabaseEngine_x64.exe 的说明
  10. 我php第一个页面,您的第一个 PHP 页面
  11. 使用 Filebeat 对多行日志进行处理(multiline)
  12. Python3 输入和输出(一)
  13. python学习笔记之读取pdf文件库pdfminer(二)
  14. php做网站步骤_怎么制作php网站
  15. Docker安装JanusGraph
  16. jmeter安全证书_使用Jmeter进行https接口测试时,如何导入证书
  17. 使用内网穿透实现外网访问内网地址
  18. 井字游戏HTML,HTML5井字棋游戏
  19. php include require m.jb51.net,phpmyadmin下载、安装、配置教程
  20. 选择结构与分支结构 计算器的实现

热门文章

  1. android获取手机的IMSI码
  2. 【Java】面向对象是什么
  3. 【Scala】Scala中的_ 和 _*分别代表什么
  4. 垃圾收集器(CMS收集器 , G1收集器…)
  5. JMeter性能测试中如何使用“用户参数”实现参数化
  6. Selenium API-鼠标与键盘事件
  7. web自动化如何在不同浏览器运行_如何给树莓派搭建WEB开发运行环境之JAVA篇
  8. html ajax输出表格中,使用Ajax来渲染HTML表格
  9. mysql mybatis 主键id_MyBatis+MySQL 返回插入的主键ID
  10. linux的grub界面退出,linux退出 grub