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 相关文章推荐
消息持续发送的完整例子
Oct 09 PHP
php中通过smtp发邮件的类,测试通过
Jan 22 PHP
不错的PHP学习之php4与php5之间会穿梭一点点感悟
May 03 PHP
也谈php网站在线人数统计
Apr 09 PHP
phpMyAdmin 安装及问题总结
May 28 PHP
PHP网站安装程序制作的原理、步骤、注意事项和示例代码
Aug 01 PHP
探讨PHP JSON中文乱码的解决方法详解
Jun 06 PHP
PHP中SimpleXML函数用法分析
Nov 26 PHP
php使用标签替换的方式生成静态页面
May 21 PHP
PHP环境搭建(php+Apache+mysql)
Nov 14 PHP
ThinkPHP开发--使用七牛云储存
Sep 14 PHP
CI框架实现创建自定义类库的方法
Dec 25 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排序之二维数组的按照字母排序实现代码
2011/08/13 PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
2014/08/20 PHP
PHP使用DirectoryIterator显示下拉文件列表的方法
2015/03/13 PHP
分享PHP守护进程类
2015/12/30 PHP
微信公众号开发之通过接口删除菜单
2017/02/20 PHP
js 变量类型转换常用函数与代码[比较全]
2009/12/01 Javascript
namespace.js Javascript的命名空间库
2011/10/11 Javascript
js编写trim()函数及正则表达式的运用
2013/10/24 Javascript
js实现模拟银行卡账号输入显示效果
2015/11/18 Javascript
JavaScript代码性能优化总结(推荐)
2016/05/16 Javascript
JS代码实现根据时间变换页面背景效果
2016/06/16 Javascript
20分钟打造属于你的Bootstrap站点
2016/07/27 Javascript
vue.js中$watch的用法示例
2016/10/04 Javascript
js图片上传的封装代码
2017/08/01 Javascript
图文详解vue框架安装步骤
2019/02/12 Javascript
Vue中使用matomo进行访问流量统计的实现
2019/11/05 Javascript
Django中实现一个高性能计数器(Counter)实例
2014/07/09 Python
Python爬取APP下载链接的实现方法
2016/09/30 Python
详解Python文本操作相关模块
2017/06/22 Python
Python计算斗牛游戏概率算法实例分析
2017/09/26 Python
Python 做曲线拟合和求积分的方法
2018/12/29 Python
200行python代码实现2048游戏
2019/07/17 Python
Python3中urlencode和urldecode的用法详解
2019/07/23 Python
postman传递当前时间戳实例详解
2019/09/14 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
2019/11/29 Python
基于Python获取照片的GPS位置信息
2020/01/20 Python
用python批量下载apk
2020/12/29 Python
CSS3中的content属性使用示例
2015/07/20 HTML / CSS
纯css3使用vw和vh实现自适应的方法
2018/02/09 HTML / CSS
英国潮流网站:END.(全球免邮)
2017/01/16 全球购物
皇家阿尔伯特瓷器美国官网:Royal Albert美国
2020/02/16 全球购物
机电专业个人求职信范文
2013/12/30 职场文书
就业自我评价
2014/02/04 职场文书
残联2016年全国助残日活动总结
2016/04/01 职场文书
导游词之海南天涯海角
2019/12/05 职场文书
Java十分钟精通进阶适配器模式
2022/04/06 Java/Android