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 相关文章推荐
计算2000年01月01日起到指定日的天数
Oct 09 PHP
PHP+MySQL 手工注入语句大全 推荐
Oct 30 PHP
解析php二分法查找数组是否包含某一元素
May 23 PHP
php 备份数据库代码(生成word,excel,json,xml,sql)
Jun 23 PHP
深入解析Session是否必须依赖Cookie
Aug 02 PHP
PHP提示Cannot modify header information - headers already sent by解决方法
Sep 22 PHP
php实现图片文件与下载文件防盗链的方法
Nov 03 PHP
thinkphp autoload 命名空间自定义 namespace
Jul 17 PHP
php抽象方法和抽象类实例分析
Dec 07 PHP
php 删除指定文件夹的实例讲解
Jul 25 PHP
PHP获取链表中倒数第K个节点的方法
Jan 18 PHP
PHP simplexml_import_dom()函数讲解
Feb 03 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
Ping服务的php实现方法,让网站快速被收录
2012/02/04 PHP
关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
2013/06/28 PHP
PHP类继承 extends使用介绍
2014/01/14 PHP
php调用C代码的实现方法
2014/03/11 PHP
PHP设计模式之装饰器模式定义与用法详解
2018/04/02 PHP
JQuery的ajax获取数据后的处理总结(html,xml,json)
2010/07/14 Javascript
jQuery队列控制方法详解queue()/dequeue()/clearQueue()
2010/12/02 Javascript
原生js实现半透明遮罩层效果具体代码
2013/06/06 Javascript
javascript实现的DES加密示例
2013/10/30 Javascript
如何编写高质量JS代码(续)
2015/02/25 Javascript
简介JavaScript中的setHours()方法的使用
2015/06/11 Javascript
延时加载JavaScript代码提高速度
2015/12/27 Javascript
js获取时间函数及扩展函数的方法
2016/10/30 Javascript
JS实现一次性弹窗的方法【刷新后不弹出】
2016/12/26 Javascript
Bootstrap Table 删除和批量删除
2017/09/22 Javascript
Vue 3.x+axios跨域方案的踩坑指南
2019/07/04 Javascript
vue动态渲染svg、添加点击事件的实现
2020/03/13 Javascript
在Python的Django框架中调用方法和处理无效变量
2015/07/15 Python
Python中的if、else、elif语句用法简明讲解
2016/03/11 Python
Django中ORM表的创建和增删改查方法示例
2017/11/15 Python
python批量设置多个Excel文件页眉页脚的脚本
2018/03/14 Python
Python基于滑动平均思想实现缺失数据填充的方法
2019/02/21 Python
python找出因数与质因数的方法
2019/07/25 Python
Python如何实现动态数组
2019/11/02 Python
Python使用socketServer包搭建简易服务器过程详解
2020/06/12 Python
英国最大的宠物食品和宠物用品网上零售商: Zooplus
2016/08/01 全球购物
英国家喻户晓的高街品牌:River Island
2017/11/28 全球购物
荷兰电脑专场:Paradigit
2018/05/05 全球购物
日本酒店、民宿、温泉旅馆、当地旅行团中文预订:e路东瀛
2019/12/09 全球购物
2014坚持党风廉政建设思想汇报
2014/09/18 职场文书
工作失职检讨书(精华篇)
2014/10/15 职场文书
小学英语教学经验交流材料
2015/11/02 职场文书
初中班级口号霸气押韵
2015/12/24 职场文书
Python实现Telnet自动连接检测密码的示例
2021/04/16 Python
浅谈MySQL中的六种日志
2022/03/23 MySQL
Web应用开发TypeScript使用详解
2022/05/25 Javascript