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教程孙仲岳主讲
Jan 07 PHP
php快速url重写 更新版[需php 5.30以上]
Apr 20 PHP
关于PHP中Object对象的笔记分享
Jun 28 PHP
PHP设计模式之迭代器模式的深入解析
Jun 13 PHP
关于php内存不够用的快速解决方法
Oct 26 PHP
PHP处理Json字符串解码返回NULL的解决方法
Sep 01 PHP
PHP将session信息存储到数据库的类实例
Mar 04 PHP
深入浅析Yii admin的权限控制
Aug 31 PHP
PHP面向对象之领域模型+数据映射器实例(分析)
Jun 21 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
Nov 16 PHP
ThinkPHP中获取指定日期后工作日的具体日期方法
Oct 14 PHP
搭建PhpStorm+PhpStudy开发环境的超详细教程
Sep 17 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』PHP截断函数mb_substr()使用介绍
2013/04/22 PHP
用PHP代替JS玩转DOM的思路及示例代码
2014/06/15 PHP
PHP串行化与反串行化实例分析
2016/12/27 PHP
PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】
2019/05/13 PHP
js 设置选中行的样式的实现代码
2010/05/24 Javascript
如何让easyui gridview 宽度自适应窗口改变及fitColumns应用
2013/01/25 Javascript
什么是 AngularJS?AngularJS简介
2014/12/06 Javascript
浅谈NodeJS中require路径问题
2015/05/07 NodeJs
理解JavaScript的变量的入门教程
2015/07/07 Javascript
JavaScript实现的经典文件树菜单效果
2015/09/08 Javascript
jquery获取css的color值返回RGB的方法
2015/12/18 Javascript
javascript中的作用域和闭包详解
2016/01/13 Javascript
基于jQuery Ajax实现上传文件
2016/03/24 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
2016/05/24 Javascript
jQuery简易时光轴实现方法示例
2017/03/13 Javascript
Bootstrap缩略图的创建方法
2017/03/22 Javascript
Vue.js与 ASP.NET Core 服务端渲染功能整合
2017/11/16 Javascript
Angular 数据请求的实现方法
2018/05/07 Javascript
JavaScript对象拷贝与Object.assign用法实例分析
2018/06/20 Javascript
vue中element-ui表格缩略图悬浮放大功能的实例代码
2018/06/26 Javascript
原生JS无缝滑动轮播图
2019/10/22 Javascript
24行JavaScript代码实现Redux的方法实例
2019/11/17 Javascript
Vue v-for中的 input 或 select的值发生改变时触发事件操作
2020/08/31 Javascript
浅谈JavaScript 声明提升
2020/09/14 Javascript
Vue使用CDN引用项目组件,减少项目体积的步骤
2020/10/30 Javascript
python去除文件中空格、Tab及回车的方法
2016/04/12 Python
Python+Wordpress制作小说站
2017/04/14 Python
pandas的唯一值、值计数以及成员资格的示例
2018/07/25 Python
python读写数据读写csv文件(pandas用法)
2020/12/14 Python
HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍
2013/01/30 HTML / CSS
TripAdvisor西班牙官方网站:全球领先的旅游网站
2018/01/10 全球购物
学生会竞选自荐信
2013/10/12 职场文书
服装设计行业个人的自我评价
2013/12/20 职场文书
2014国庆节标语口号
2014/09/19 职场文书
小学向国旗敬礼活动方案
2014/09/27 职场文书
JavaScript设计模式之原型模式详情
2022/06/21 Javascript