php发送http put/patch/delete请求Demo
CURL请求对于PHPer是必备技能,使用curl_opt
函数来发送各式各样的http请求动作,不仅限于get和post。
在测试自己的restful api的时候,通过访问这个代理发送http put/patch/delete请求的php页面,完成测试。请参考下面的DEMO。
- <?php
- /**
- * http.php
- * 用来向服务器的RESTful API发起各类HTTP请求的工具函数。
- *
- * 使用: http://www.phpthinking.com/test.php?action=xxx
- * xxx \in {get,post,put,patch,delete}
- *
- * Created by PhpStorm.
- * User: PHPthinking
- * Date: 2017/12/28
- * 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://www.phpthinking.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请求Demo的更多相关文章
- php发送http put/patch/delete请求
今天学RESTful API的编写,发现不知道怎么发送HTTP PUT/PATCH/DELETE请求,还是要学习一个. 使用curl_opt函数来发送各式各样的http请求动作,不仅限于get和pos ...
- 解决SpringMVC put,patch,delete请求数据拿不到的问题
解决SpringMVC put,patch,delete请求参数拿不到的问题 废话不多说,核心代码如下: 在web.xml中添加如下代码 <!-- 解决web端不能put,delete等请求的问 ...
- 在ASP.NET Core中用HttpClient(二)——发送POST, PUT和DELETE请求
在上一篇文章中,我们已经学习了如何在ASP.NET Core中使用HttpClient从Web API获取数据.此外,我们还学习了如何使用GetAsync方法和HttpRequestMessage类发 ...
- 【转】AJAX发送 PUT和DELETE请求注意事项
jax使用restful服务发送put 和 delete 请求时直接传参会出现问题 一,采用POST + _method:delete/put + filter 的方法ajax发送put 和 de ...
- AJAX发送 PUT和DELETE请求参数传递注意点,了解一下
ajax发送put 和 delete 请求时,需要传递参数,如果参数在url地址栏上,则可以正常使用, 如果在 data:中需要传递参数,(浏览器会使用表单提交的方式进行提交) 则需要注意此时应作如下 ...
- 使用HttpClient 发送 GET、POST、PUT、Delete请求及文件上传
package org.caeit.cloud.dev.util; import java.io.File; import java.io.IOException; import java.io.Un ...
- springmvc 发送PUT 和 DELETE 请求
一: 发送 DELETE 或者 PUT 请求: 1.在表单中加入一个隐藏的参数: _method , 值是 DELETE (或者PUT) <form action="springmv ...
- C#发送POST,GET,DELETE请求API,并接受返回值
发送POST请求 /// <summary> /// API发送POST请求 /// </summary> /// <param name="url" ...
- 如何同步发送put或者delete请求
1.必须把前端发送方式改为post . 2.在web.xml中配置一个filter:HiddenHttpMethodFilter过滤器 3.必须携带一个键值对,key=_method, value= ...
随机推荐
- jeecg-boot 简易部署方案
jeecg-boot采用前后端分离的方案,前后端代码不在一起.想要部署 一般是通过反向代理实现. jeecg-boot目前支持更好更简单的解决方案: jeecg 在配置文件里面指定了 webapp的存 ...
- css样式的书写顺序及原理——很重要!
记得刚开始学习前端的时候,每次写css样式都是用到什么就在样式表后添加什么,完全没有考虑到样式属性的书写顺序对网页加载代码的影响.后来逐渐才知道正确的样式顺序不仅易于查看,并且也属于css样式优化的一 ...
- 每日一练之大整数加法(P1255 数楼梯)
走楼梯走一步还是两步的问题其实就是斐波那契数列(F(n)=F(n-1)+F(n-2),而在int型范围内存在45个相异的数,题干说明楼梯总数可以为5000,则考虑使用字符串进行存储.当两个数相加产生进 ...
- String(Java版本)
import java.io.UnsupportedEncodingException; public class Driver { public static void main(String[] ...
- C博客01--顺序、分支结构
1.本章学习总结 1.1 思维导图 1.2 本章学习体会及代码量学习体会 1.2.1 学习体会 经过一周的初步学习,对C语言我有了一定的认识,也体验到了代码的乐趣,这应该为我以后的学习开了一个好头.在 ...
- Codeforces Round #436 C. Bus
题意:一辆车在一条路上行驶,给你路的总长度a,油箱的容量b,加油站在距离起点的距离f,以及需要走多少遍这条路k(注意:不是往返) 问你最少加多少次油能走完. Examples Input 6 9 2 ...
- IDEA 中tomcat日志位置
参考 https://blog.csdn.net/dela_/article/details/78555977 /home/dela/.IntelliJIdea2017.1/system/tomcat ...
- LR实现问答系统查询功能
脚本中未对问题进行参数化处理,关键点在于关联取值和web_add_header()函数的使用 Action() { web_url("首页", "URL=http://q ...
- Hadoop2.7.7_HA高可用部署
1. Hadoop的HA机制 前言:正式引入HA机制是从hadoop2.0开始,之前的版本中没有HA机制 1.1. HA的运作机制 (1)hadoop-HA集群运作机制介绍 所谓HA,即高可用(7*2 ...
- SpringMVC中注解@RequestBody和@ResponseBody的使用区别
首先上源码 在面试时经常会问到我们如何使用SpringMVC将Http请求转换为java对象,或者又是问如何将结果转换为java的呢? SpringMVC在接收到请求之后HandlerMapping像 ...