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 相关文章推荐
MayFish PHP的MVC架构的开发框架
Aug 13 PHP
php时间戳转换的示例
Mar 31 PHP
php根据某字段对多维数组进行排序的方法
Mar 07 PHP
通过Email发送PHP错误的方法
Jul 20 PHP
php实现scws中文分词搜索的方法
Dec 25 PHP
php页面跳转session cookie丢失导致不能登录等问题的解决方法
Dec 12 PHP
PHP命名空间简单用法示例
Dec 28 PHP
thinkphp5框架实现的自定义扩展类操作示例
May 16 PHP
PHP使用ajax的post方式下载excel文件简单示例
Aug 06 PHP
Laravel使用swoole实现websocket主动消息推送的方法介绍
Oct 20 PHP
在 Laravel 中动态隐藏 API 字段的方法
Oct 25 PHP
浅析PHP中的 inet_pton 网络函数
Dec 16 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
咖啡知识 咖啡养豆要养多久 排气又是什么
2021/03/06 新手入门
php之字符串变相相减的代码
2007/03/19 PHP
某大型网络公司应聘时的笔试题目附答案
2008/03/27 PHP
APACHE的AcceptPathInfo指令使用介绍
2013/01/18 PHP
php 调用百度sms来发送短信的实现示例
2018/11/02 PHP
thinkphp3.2框架中where条件查询用法总结
2019/08/13 PHP
javascript 动态数据下的锚点错位问题解决方法
2008/12/24 Javascript
jQuery1.6 使用方法一
2011/11/23 Javascript
基于JavaScript实现继承机制之原型链(prototype chaining)的详解
2013/05/07 Javascript
Jquery getJSON方法详细分析
2013/12/26 Javascript
jQuery实现的多选框多级联动插件
2014/05/02 Javascript
JS 作用域与作用域链详解
2015/04/07 Javascript
jquery实现带缩略图的可定制高度画廊效果(5种)
2015/08/28 Javascript
jQuery随手笔记之常用的jQuery操作DOM事件
2015/11/29 Javascript
AngularJS表单详解及示例代码
2016/08/17 Javascript
EasyUI 中combotree 默认不能选择父节点的实现方法
2016/11/07 Javascript
JS实现简单日历特效
2020/01/03 Javascript
javascript实现雪花飘落效果
2020/08/19 Javascript
[01:32]dota2拉比克至宝(222)
2018/12/20 DOTA
Python实现修改IE注册表功能示例
2018/05/10 Python
Python实现字典(dict)的迭代操作示例
2018/06/05 Python
pygame游戏之旅 添加游戏暂停功能
2018/11/21 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
2018/12/20 Python
python+mysql实现教务管理系统
2019/02/20 Python
Python面向对象进阶学习
2019/05/21 Python
关于Python核心框架tornado的异步协程的2种方法详解
2019/08/28 Python
python读取word 中指定位置的表格及表格数据
2019/10/23 Python
使用python处理题库表格并转化为word形式的实现
2020/04/14 Python
CSS3实现内凹圆角的实例代码
2017/05/04 HTML / CSS
旧时光糖果:Old Time Candy
2018/02/05 全球购物
2014年学生会干事工作总结
2014/11/07 职场文书
初中班长竞选稿
2015/11/20 职场文书
使用css样式设计一个简单的html登陆界面的实现
2021/03/30 HTML / CSS
K8s部署发布Golang应用程序的实现方法
2021/07/16 Golang
企业开发CSS命名BEM代码规范实践
2022/02/12 HTML / CSS
python pandas 解析(读取、写入)CSV 文件的操作方法
2022/12/24 Python