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;

最新文章

  1. selenium获取Cookie操作
  2. javascript如何设置DIV背景色为随机色
  3. Django 发布时间格式化
  4. Promise.race
  5. JS实现剪切板添加网站版权、来源
  6. Linux版OpenVPN安装、配置教程(转)
  7. [原]Linux系统管理使用技巧总结
  8. Oracle数据库之FORALL与BULK COLLECT语句
  9. JavaEE:XML解析
  10. C# 超高速高性能写日志 代码开源
  11. ubuntu11.0静态IP地址配置
  12. 【转】Matlab中的括号()[] {}
  13. 使用原生JS定位网页元素
  14. Win7删除文件夹提示找不到该项目无法删除
  15. Ubuntu 15.10下的WebStorm-11.0.3完美破解
  16. ASP.NET Core在Azure Kubernetes Service中的部署和管理
  17. 一起学Hive——总结常用的Hive优化技巧
  18. ifconfig中lo、eth0、br0、wlan0接口
  19. [转]Office导入导出组件权限配置汇总
  20. 安装xmlspy之后,链接及邮箱等都用这个软件打开,怎样取消?

热门文章

  1. Android App专项测试(压力测试)
  2. 机器学习-Sklearn
  3. 微信小程序海报生成功能
  4. shell 批量删除所有指定名字的目录
  5. getPageNumRange
  6. vue---canvas实现二维码和图片合成的海报
  7. RPC web service
  8. pandas,读取或存储DataFrames的数据到mysql中
  9. vue加elementui开发的分页显示
  10. laravel 模型操作