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 数组遍历的差异(array_diff 的实现)
Mar 23 PHP
Ajax+PHP 边学边练 之二 实例
Nov 24 PHP
IIS6.0中配置php服务全过程解析
Aug 07 PHP
浅析PHP原理之变量(Variables inside PHP)
Aug 09 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
Aug 19 PHP
php创建session的方法实例详解
Jan 27 PHP
PHP输出九九乘法表代码实例
Mar 27 PHP
PHP实现二叉树的深度优先与广度优先遍历方法
Sep 28 PHP
微信利用PHP创建自定义菜单的方法
Aug 01 PHP
php实现图片压缩处理
Sep 09 PHP
php自动加载代码实例详解
Feb 26 PHP
PHP 技巧 * SVG 保存为图片(分享图生成)
Apr 02 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/04/09 PHP
php引用返回与取消引用的详解
2013/06/08 PHP
PHP getDocNamespaces()函数讲解
2019/02/03 PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
2019/04/15 PHP
Laravel框架创建路由的方法详解
2019/09/04 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
ExtJS 入门
2010/10/29 Javascript
js解析与序列化json数据(三)json的解析探讨
2013/02/01 Javascript
ztree获取当前选中节点子节点id集合的方法
2015/02/12 Javascript
Bootstrap每天必学之日期控制
2016/03/07 Javascript
js一维数组、多维数组和对象的混合使用方法
2016/04/03 Javascript
javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结
2016/10/10 Javascript
Bootstrap警告(Alerts)的实现方法
2017/03/22 Javascript
ES6解构赋值的功能与用途实例分析
2017/10/31 Javascript
在react-router4中进行代码拆分的方法(基于webpack)
2018/03/08 Javascript
js的对象与函数详解
2019/01/21 Javascript
在layui下对元素进行事件绑定的实例
2019/09/06 Javascript
vue el-table实现自定义表头
2019/12/11 Javascript
jquery实现商品sku多属性选择功能(商品详情页)
2019/12/20 jQuery
微信小程序自定义弹出模态框禁止底部滚动功能
2020/03/09 Javascript
vue中路由跳转不计入history的操作
2020/09/21 Javascript
编写Python脚本来实现最简单的FTP下载的教程
2015/05/04 Python
python print输出延时,让其立刻输出的方法
2019/01/07 Python
解决Pycharm后台indexing导致不能run的问题
2019/06/27 Python
python 实现一个反向单位矩阵示例
2019/11/29 Python
python操作gitlab API过程解析
2019/12/27 Python
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
2021/02/18 Python
销售所有的狗狗产品:Dog.com
2016/10/13 全球购物
澳大利亚二手奢侈品网站:Modsie
2019/09/23 全球购物
乌克兰品牌化妆品和香水在线商店:Bomond
2020/01/14 全球购物
Kickers鞋英国官网:男士、女士和儿童鞋
2021/03/08 全球购物
药店促销活动策划方案
2014/08/24 职场文书
中学生爱国演讲稿
2014/09/05 职场文书
2014年实验室工作总结
2014/12/03 职场文书
小学生学习保证书
2015/02/26 职场文书
我的1919观后感
2015/06/03 职场文书