php模拟post提交请求调用接口示例解析


Posted in PHP onAugust 07, 2020

php模拟post提交请求,调用接口

/**
 * 模拟post进行url请求
 * @param string $url
 * @param string $param
 */
 function request_post($url = '', $param = '') {
 if (empty($url) || empty($param)) {
  return false;
 }
 
 $postUrl = $url;
 $curlPost = $param;
 $ch = curl_init();//初始化curl
 curl_setopt($ch, CURLOPT_URL,$postUrl);//抓取指定网页
 curl_setopt($ch, CURLOPT_HEADER, 0);//设置header
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
 curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
 curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
 $data = curl_exec($ch);//运行curl
 curl_close($ch);
 
 return $data;
 }

这是方法,

下面是具体的调用案例。

function testAction(){
 $url = 'http://mobile.jschina.com.cn/jschina/register.php';
 $post_data['appid'] = '10';
 $post_data['appkey'] = 'cmbohpffXVR03nIpkkQXaAA1Vf5nO4nQ';
 $post_data['member_name'] = 'zsjs123';
 $post_data['password'] = '123456';
 $post_data['email'] = 'zsjs123@126.com';
 $o = "";
 foreach ( $post_data as $k => $v ) 
 { 
  $o.= "$k=" . urlencode( $v ). "&" ;
 }
 $post_data = substr($o,0,-1);

 $res = $this->request_post($url, $post_data); 
 print_r($res);

 }

这样就提交请求,并且获取请求结果了。一般返回的结果是json格式的。

这里的post是拼接出来的。

也可以改造成下面的方式。

/**
 * 模拟post进行url请求
 * @param string $url
 * @param array $post_data
 */
 function request_post($url = '', $post_data = array()) {
 if (empty($url) || empty($post_data)) {
  return false;
 }
 
 $o = "";
 foreach ( $post_data as $k => $v ) 
 { 
  $o.= "$k=" . urlencode( $v ). "&" ;
 }
 $post_data = substr($o,0,-1);

 $postUrl = $url;
 $curlPost = $post_data;
 $ch = curl_init();//初始化curl
 curl_setopt($ch, CURLOPT_URL,$postUrl);//抓取指定网页
 curl_setopt($ch, CURLOPT_HEADER, 0);//设置header
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
 curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
 curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
 $data = curl_exec($ch);//运行curl
 curl_close($ch);
 
 return $data;
 }

将拼接也封装了起来,这样调用的时候就更简洁了。

function testAction(){
 $url = 'http://mobile.jschina.com.cn/jschina/register.php';
 $post_data['appid'] = '10';
 $post_data['appkey'] = 'cmbohpffXVR03nIpkkQXaAA1Vf5nO4nQ';
 $post_data['member_name'] = 'zsjs124';
 $post_data['password'] = '123456';
 $post_data['email'] = 'zsjs124@126.com';
 //$post_data = array();
 $res = $this->request_post($url, $post_data); 
 print_r($res);

 }

到此这篇关于php模拟post提交请求调用接口示例解析的文章就介绍到这了,更多相关php模拟post提交请求调用接口内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
linux iconv方法的使用
Oct 01 PHP
php数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。
Nov 07 PHP
解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
Jun 28 PHP
php取整函数ceil,floo,round的用法及介绍
Aug 31 PHP
php ctype函数中文翻译和示例
Mar 21 PHP
PHP实现的简单日历类
Nov 29 PHP
php使用Session和文件统计在线人数
Jul 04 PHP
php如何获取文件的扩展名
Oct 28 PHP
php安装扩展mysqli的实现步骤及报错解决办法
Sep 23 PHP
Laravel框架实现的批量删除功能示例
Jan 16 PHP
php中目录操作opendir()、readdir()及scandir()用法示例
Jun 08 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
Apr 04 PHP
基于PHP+mysql实现新闻发布系统的开发
Aug 06 #PHP
基于PHP+Mysql简单实现了图书购物车系统的实例详解
Aug 06 #PHP
基于PHP的登录和注册的功能的实现
Aug 06 #PHP
php中try catch捕获异常实例详解
Aug 06 #PHP
PHP日期和时间函数的使用示例详解
Aug 06 #PHP
Apache+PHP+MySQL搭建PHP开发环境图文教程
Aug 06 #PHP
PHP文件打开关闭及读写操作示例解析
Aug 06 #PHP
You might like
各种战术和打法的原创者
2020/03/04 星际争霸
全国FM电台频率大全 - 15 山东省
2020/03/11 无线电
第十三节--对象串行化
2006/11/16 PHP
PHP中的array数组类型分析说明
2010/07/27 PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
2013/06/17 PHP
thinkphp框架类库扩展操作示例
2019/11/26 PHP
jQuery 阴影插件代码分享
2012/01/09 Javascript
选择器中含有空格在使用示例及注意事项
2013/07/31 Javascript
js调用图片隐藏&显示实现代码
2013/09/13 Javascript
仿当当网淘宝网等主流电子商务网站商品分类导航菜单
2013/09/25 Javascript
jQuery中使用data()方法读取HTML5自定义属性data-*实例
2014/04/11 Javascript
jquery获取select选中值的方法分析
2015/12/22 Javascript
jQuery实现点击任意位置弹出层外关闭弹出层效果
2016/10/19 Javascript
js 动态生成json对象、时时更新json对象的方法
2016/12/02 Javascript
jQuery创建及操作xml格式数据示例
2018/05/26 jQuery
vue组件间的参数传递实例详解
2019/04/26 Javascript
使用webpack/gulp构建TypeScript项目的方法示例
2019/12/18 Javascript
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
python测试驱动开发实例
2014/10/08 Python
python使用自定义user-agent抓取网页的方法
2015/04/15 Python
python在指定目录下查找gif文件的方法
2015/05/04 Python
整理Python 常用string函数(收藏)
2016/05/30 Python
python自带的http模块详解
2016/11/06 Python
python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
2020/03/10 Python
django项目中新增app的2种实现方法
2020/04/01 Python
CSS3 三维变形实现立体方块特效源码
2016/12/15 HTML / CSS
详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
2016/12/20 HTML / CSS
耐克巴西官方网站:Nike巴西
2016/08/14 全球购物
土耳其家居建材网站:Koçtaş
2016/11/22 全球购物
诗狄娜化妆品官方网站:Stila Cosmetics
2016/12/21 全球购物
娇韵诗Clarins意大利官方网站:法国天然护肤品牌
2020/03/11 全球购物
募捐倡议书怎么写
2014/05/14 职场文书
市贸粮局召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
前台接待岗位职责
2015/02/03 职场文书
一个独生女的故事观后感
2015/06/04 职场文书
使用feign服务调用添加Header参数
2021/06/23 Java/Android