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 相关文章推荐
php Try Catch异常测试
Mar 01 PHP
php压缩多个CSS为一个css的代码并缓存
Apr 21 PHP
PHP 通过Socket收发十六进制数据的实现代码
Aug 16 PHP
美图秀秀web开放平台--PHP流式上传和表单上传示例分享
Jun 22 PHP
php实现给一张图片加上水印效果
Jan 02 PHP
php实现的操作excel类详解
Jan 15 PHP
php json_encode与json_decode详解及实例
Dec 13 PHP
PHP 实现公历日期与农历日期的互转换
Sep 13 PHP
PHP超低内存遍历目录文件和读取超大文件的方法
May 01 PHP
laravel 错误处理,接口错误返回json代码
Oct 25 PHP
laravel框架创建授权策略实例分析
Nov 22 PHP
TP5框架页面跳转样式操作示例
Apr 05 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
php将数据库中的电话号码读取出来并生成图片
2008/08/31 PHP
解析mysql left( right ) join使用on与where筛选的差异
2013/06/18 PHP
php数组去重复数据示例
2014/02/25 PHP
PHP基于CURL进行POST数据上传实例
2014/11/10 PHP
PHP利用APC模块实现文件上传进度条的方法
2015/01/26 PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
2017/05/02 PHP
php表单习惯用的正则表达式
2017/10/11 PHP
浅析PHP 中move_uploaded_file 上传中文文件名失败
2019/04/17 PHP
jquery validate.js表单验证的基本用法入门
2010/05/13 Javascript
js中判断Object、Array、Function等引用类型对象是否相等
2012/08/29 Javascript
Jquery对数组的操作技巧整理
2014/03/25 Javascript
Javascript学习笔记之 函数篇(一) : 函数声明和函数表达式
2014/06/24 Javascript
javascript转换静态图片,增加粒子动画效果
2015/05/28 Javascript
浅谈JavaScript中的string拥有方法的原因
2015/08/28 Javascript
js读取并解析JSON类型数据的方法
2015/11/14 Javascript
js匿名函数作为函数参数详解
2016/06/01 Javascript
javascript简易画板开发
2020/04/12 Javascript
Bootstrap table的使用方法
2016/11/02 Javascript
jQuery设计思想
2017/03/07 Javascript
详解JavaScript事件循环机制
2018/09/07 Javascript
vue使用自定义指令实现拖拽
2021/01/29 Javascript
微信小程序用户授权、位置授权及获取微信绑定手机号
2019/07/18 Javascript
[01:08:29]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第一场 1月9日
2021/03/11 DOTA
Python性能优化技巧
2015/03/09 Python
Flask框架的学习指南之开发环境搭建
2016/11/20 Python
Python OpenCV获取视频的方法
2018/02/28 Python
解决python对齐错误的方法
2020/07/16 Python
Autopep8的使用(python自动编排工具)
2021/03/02 Python
CSS3实现的渐变幻灯片效果
2020/12/07 HTML / CSS
美国室内和室外装饰花盆购物网站:ePlanters
2019/03/22 全球购物
关爱老人标语
2014/06/21 职场文书
2014年残联工作总结
2014/11/21 职场文书
医生辞职信范文
2015/03/02 职场文书
信访工作个人总结
2015/03/03 职场文书
天气温馨提示语
2015/07/14 职场文书
2015年国庆节新闻稿
2015/07/18 职场文书