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网页后退不再出现过期
Mar 08 PHP
php获取本地图片文件并生成xml文件输出具体思路
Apr 27 PHP
解析php中eclipse 用空格替换 tab键
Jun 24 PHP
一个简单且很好用的php分页类
Oct 26 PHP
Yii分页用法实例详解
Dec 04 PHP
PHP判断网络文件是否存在的方法
Mar 12 PHP
在Linux系统下一键重新安装WordPress的脚本示例
Jun 30 PHP
PHP超全局数组(Superglobals)介绍
Jul 01 PHP
Symfony控制层深入详解
Mar 17 PHP
CI(CodeIgniter)框架实现图片上传的方法
Mar 24 PHP
简单谈谈PHP面向对象之标识对象
Jun 27 PHP
laravel实现于语言包的完美切换方法
Sep 29 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开发GUI
2006/10/09 PHP
杏林同学录(二)
2006/10/09 PHP
PHP 和 MySQL 开发的 8 个技巧
2007/01/02 PHP
深入php var_dump()函数的详解
2013/06/05 PHP
C#使用PHP服务端的Web Service通信实例
2014/04/08 PHP
PHP实现linux命令tail -f
2016/02/22 PHP
在Laravel5中正确设置文件权限的方法
2019/05/22 PHP
laravel框架添加数据,显示数据,返回成功值的方法
2019/10/11 PHP
javascript 基础篇3 类,回调函数,内置对象,事件处理
2012/03/14 Javascript
用html5 js实现点击一个按钮达到浏览器全屏效果
2014/05/28 Javascript
JS实现列表的响应式排版(推荐)
2016/09/01 Javascript
jQuery EasyUI Accordion可伸缩面板组件使用详解
2017/02/28 Javascript
JavaScript编程设计模式之构造器模式实例分析
2017/10/25 Javascript
微信小程序实现打卡日历功能
2020/09/21 Javascript
Vue组件化开发之通用型弹出框的实现
2020/02/28 Javascript
javascript设计模式 ? 观察者模式原理与用法实例分析
2020/04/22 Javascript
基于Electron实现桌面应用开发代码实例
2020/07/07 Javascript
[02:49]DAC2018决赛日TOP5 LGD开启黑暗之门绝杀VP
2018/04/08 DOTA
详解C++编程中一元运算符的重载
2016/01/19 Python
Python 专题三 字符串的基础知识
2017/03/19 Python
Python 将RGB图像转换为Pytho灰度图像的实例
2017/11/14 Python
浅谈python 里面的单下划线与双下划线的区别
2017/12/01 Python
python3+PyQt5实现拖放功能
2018/04/24 Python
python实现彩色图转换成灰度图
2019/01/15 Python
pycharm远程开发项目的实现步骤
2019/01/20 Python
python实现在多维数组中挑选符合条件的全部元素
2019/11/26 Python
Python代码执行时间测量模块timeit用法解析
2020/07/01 Python
铭宣海淘转运:美国、日本、英国转运等全球转运公司
2019/09/10 全球购物
怎样比较两个类型为String的字符串
2016/08/17 面试题
NULL是什么,它是怎么定义的
2015/05/09 面试题
应届大学生求职信
2013/12/01 职场文书
《颐和园》教学反思
2014/02/26 职场文书
服务整改报告
2014/11/06 职场文书
新课程改革心得体会
2016/01/22 职场文书
使用Html+Css实现简易导航栏功能(导航栏遇到鼠标切换背景颜色)
2021/04/07 HTML / CSS
Android Flutter实现3D动画效果示例详解
2022/04/07 Java/Android