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中常用的预定义变量小结
May 09 PHP
PHP手机号码归属地查询代码(API接口/mysql)
Sep 04 PHP
PHP生成网站桌面快捷方式代码分享
Oct 11 PHP
php字符串过滤与替换小结
Jan 26 PHP
MySql数据库查询结果用表格输出PHP代码示例
Mar 20 PHP
php日期操作技巧小结
Jun 25 PHP
PHP自定义函数获取URL中一级域名的方法
Aug 23 PHP
PHP加密技术的简单实现
Sep 04 PHP
老生常谈php 正则中的i,m,s,x,e分别表示什么
Mar 02 PHP
PHP实现webshell扫描文件木马的方法
Jul 31 PHP
什么是PHP7中的孤儿进程与僵尸进程
Apr 14 PHP
laravel 出现command not found问题的解决方案
Oct 23 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
德生PL660的电路分析和打磨
2021/03/02 无线电
类的另类用法--数据的封装
2006/10/09 PHP
解决MySQL中文输出变成问号的问题
2008/06/05 PHP
php简单的会话类代码
2011/08/08 PHP
destoon二次开发入门示例
2014/06/20 PHP
支持中文、字母、数字的PHP验证码
2015/05/04 PHP
利用PHP如何统计Nginx日志的User Agent数据
2019/03/06 PHP
JavaScript Event学习第五章 高级事件注册模型
2010/02/07 Javascript
jQuery 自动增长的文本输入框实现代码
2010/04/02 Javascript
JavaScript 原型链学习总结
2010/10/29 Javascript
Jquery submit()无法提交问题
2013/04/21 Javascript
react学习笔记之state以及setState的使用
2017/12/07 Javascript
tangram.js库实现js类的方式实例分析
2018/01/06 Javascript
three.js 入门案例详解
2018/01/23 Javascript
vue-cli3环境变量与分环境打包的方法示例
2019/02/18 Javascript
vue前端和Django后端如何查询一定时间段内的数据
2021/02/28 Vue.js
Python实现端口复用实例代码
2014/07/03 Python
简介Django中内置的一些中间件
2015/07/24 Python
python网络爬虫之如何伪装逃过反爬虫程序的方法
2017/11/23 Python
详细分析python3的reduce函数
2017/12/05 Python
python处理两种分隔符的数据集方法
2018/12/12 Python
浅谈Python线程的同步互斥与死锁
2020/03/22 Python
Python基于pandas爬取网页表格数据
2020/05/11 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
2020/05/23 Python
python实现无边框进度条的实例代码
2020/12/30 Python
用纯css3和html制作泡沫对话框实现代码
2013/03/21 HTML / CSS
利用css3如何设置没有上下边的列表间隔线
2017/07/03 HTML / CSS
测绘工程个人的自我评价
2013/11/10 职场文书
冰淇淋开店创业计划书
2014/02/01 职场文书
2014年开学第一课活动方案
2014/03/06 职场文书
纪念九一八事变演讲稿:勿忘国耻
2014/09/14 职场文书
办理信用卡工作证明
2014/09/30 职场文书
12.4法制宣传日标语
2014/10/08 职场文书
酒店辞职书怎么写
2015/02/26 职场文书
单位考核聘任报告
2015/03/02 职场文书
springboot 启动如何排除某些bean的注入
2021/08/02 Java/Android