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中的session永不过期的解决思路及实现方法分享
Apr 20 PHP
php curl常见错误:SSL错误、bool(false)
Dec 28 PHP
php 中的4种标记风格介绍
May 10 PHP
table标签的结构与合并单元格的实现方法
Jul 24 PHP
php连接与操作PostgreSQL数据库的方法
Dec 25 PHP
PHP获取数组最后一个值的2种方法
Jan 21 PHP
10款PHP开源商城系统汇总介绍
Jul 23 PHP
PHP实现基于mysqli的Model基类完整实例
Apr 08 PHP
php源码 fsockopen获取网页内容实例详解
Sep 24 PHP
php 中奖概率算法实现代码
Jan 25 PHP
php处理静态页面:页面设置缓存时间实例
Jun 22 PHP
PHP编程中的Session阻塞问题与解决方法分析
Aug 07 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
thinkphp中AJAX返回ajaxReturn()方法分析
2016/12/06 PHP
PHP实现一个按钮点击上传多个图片操作示例
2020/01/23 PHP
非常好的js代码
2006/06/27 Javascript
javascript iframe编程相关代码
2009/12/28 Javascript
JavaScript 学习初步 入门教程
2010/03/25 Javascript
document.compatMode的CSS1compat使用介绍
2014/04/03 Javascript
js判断checkbox是否选中个数的方法(超简单)
2016/08/19 Javascript
js中apply和Math.max()函数的问题及区别介绍
2018/03/27 Javascript
Vue 第三方字体图标引入 Font Awesome的方法
2018/09/28 Javascript
javascript实现计算器功能
2020/03/30 Javascript
vue移动端弹起蒙层滑动禁止底部滑动操作
2020/07/22 Javascript
微信小程序实现天气预报功能(附源码)
2020/12/10 Javascript
[00:32]2016完美“圣”典风云人物:Maybe宣传片
2016/12/05 DOTA
Python找出list中最常出现元素的方法
2016/06/14 Python
Python实现简单过滤文本段的方法
2017/05/24 Python
用Python下载一个网页保存为本地的HTML文件实例
2018/05/21 Python
利用pandas进行大文件计数处理的方法
2018/07/25 Python
Python中的CSV文件使用"with"语句的方式详解
2018/10/16 Python
Python上下文管理器用法及实例解析
2019/11/11 Python
Python实现图片批量加入水印代码实例
2019/11/30 Python
pytorch数据预处理错误的解决
2020/02/20 Python
Python找出列表中出现次数最多的元素三种方式
2020/02/24 Python
opencv 实现特定颜色线条提取与定位操作
2020/06/02 Python
Python读写压缩文件的方法
2020/07/30 Python
解决python的空格和tab混淆而报错的问题
2021/02/26 Python
匡威荷兰官方网站:Converse荷兰
2018/10/24 全球购物
全球最受追捧的运动服品牌领先数字目的地:Stylerunner
2020/11/25 全球购物
大学生毕业求职的自我评价
2013/09/29 职场文书
装修致歉信
2014/01/15 职场文书
三严三实学习心得体会
2014/10/13 职场文书
巾帼文明岗汇报材料
2014/12/24 职场文书
大学生求职自荐信
2015/03/24 职场文书
525心理健康活动总结
2015/05/08 职场文书
元旦晚会主持词开场白
2015/05/28 职场文书
Redis 彻底禁用RDB持久化操作
2021/07/09 Redis
MySQL创建管理子分区
2022/04/13 MySQL