php curl模拟post请求和提交多维数组的示例代码


Posted in PHP onNovember 19, 2015

下面一段代码给大家介绍php curl模拟post请求的示例代码,具体代码如下:

<?php
$uri = "http://www.cnblogs.com/test.php";//这里换成自己的服务器的地址
// 参数数组
$data = array (
 'name' => 'tanteng'
// 'password' => 'password'
);
$ch = curl_init ();
// print_r($ch);
curl_setopt ( $ch, CURLOPT_URL, $uri );
curl_setopt ( $ch, CURLOPT_POST, 1 );
curl_setopt ( $ch, CURLOPT_HEADER, 0 );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );
$return = curl_exec ( $ch );
curl_close ( $ch );
print_r($return);

2,远程服务器:

<?php
if(isset($_POST['name'])){
 if(!empty($_POST['name'])){
 echo '您好,',$_POST['name'].'!';
 }
}

下面给大家介绍php中curl模拟post提交多维数组。

今天需要用curl模拟post提交参数,请求同事提供的一个接口;但是传递的参数中,有一个参数的值为数组,用普通的curl post代码提交,会报错误

PHP Notice:  Array to string conversion in /test/functions.php on line 30
Notice: Array to string conversion in /test/functions.php on line 30

代码如下:

<?php
        $param = array(
                'uid' => 123, 
                'uids' => array(12,455), 
                'msgType' => 'WITH',  
                'nick' => 'aaa',   
               );
        $url = "http://cx.com/t.php";
        //通过curl的post方式发送接口请求
        SendDataByCurl($url,$param);
       //通过curl模拟post的请求;
function SendDataByCurl($url,$data=array()){
  //对空格进行转义
  $url = str_replace(' ','+',$url);
  $ch = curl_init();
  //设置选项,包括URL
  curl_setopt($ch, CURLOPT_URL, "$url");
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch,CURLOPT_TIMEOUT,3); //定义超时3秒钟 
   // POST数据
  curl_setopt($ch, CURLOPT_POST, 1);
  // 把post的变量加上
  curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  //执行并获取url地址的内容
  $output = curl_exec($ch);
  //释放curl句柄
  curl_close($ch);
  return $output;
}

经过修改上面代码,可以完成提交数组的功能,而不会报php notice,代码如下:

//通过curl模拟post的请求;
function SendDataByCurl($url,$data=array()){
  //对空格进行转义
  $url = str_replace(' ','+',$url);
  $ch = curl_init();
  //设置选项,包括URL
  curl_setopt($ch, CURLOPT_URL, "$url");
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch,CURLOPT_TIMEOUT,3); //定义超时3秒钟 
   // POST数据
  curl_setopt($ch, CURLOPT_POST, 1);
  // 把post的变量加上
  curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));  //所需传的数组用http_bulid_query()函数处理一下,就ok了
  //执行并获取url地址的内容
  $output = curl_exec($ch);
  $errorCode = curl_errno($ch);
  //释放curl句柄
  curl_close($ch);
  if(0 !== $errorCode) {
    return false;
  }
  return $output;
}
PHP 相关文章推荐
PHP 万年历实现代码
Oct 18 PHP
PHP 循环删除无限分类子节点的实现代码
Jun 21 PHP
php增删改查示例自己写的demo
Sep 04 PHP
php堆排序(heapsort)练习
Nov 13 PHP
国产PHP开发框架myqee新手快速入门教程
Jul 14 PHP
php显示时间常用方法小结
Jun 05 PHP
PHP实现批量修改文件后缀名的方法
Jul 30 PHP
php mysql 封装类实例代码
Sep 18 PHP
PHP之十六个魔术方法详细介绍
Nov 01 PHP
浅谈PHP中的错误处理和异常处理
Feb 04 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 PHP
PHP实现的pdo连接数据库并插入数据功能简单示例
Mar 30 PHP
phpStudy访问速度慢和启动失败的解决办法
Nov 19 #PHP
标准版Eclipse搭建PHP环境的详细步骤
Nov 18 #PHP
WordPress网站性能优化指南
Nov 18 #PHP
php+ajax实现无刷新分页
Nov 18 #PHP
如何使用php脚本给html中引用的js和css路径打上版本号
Nov 18 #PHP
php生成唯一数字id的方法汇总
Nov 18 #PHP
基于PHP给大家讲解防刷票的一些技巧
Nov 18 #PHP
You might like
PHP的面试题集,附我的答案和分析(一)
2006/11/19 PHP
PHP实时显示输出
2008/10/02 PHP
PHP 翻页 实例代码
2009/08/07 PHP
php.ini中的request_order推荐设置
2015/05/10 PHP
PHP批量去除BOM头代码分享
2015/06/26 PHP
使用JavaScript动态设置样式实现代码(2)
2013/01/25 Javascript
jQuery窗口、文档、网页各种高度的精确理解
2014/07/02 Javascript
分享2个jQuery插件--jquery.fileupload与artdialog
2014/12/26 Javascript
window.location.hash知识汇总
2015/11/09 Javascript
vue实现列表的添加点击
2016/12/29 Javascript
JQuery实现文字无缝滚动效果示例代码(Marquee插件)
2017/03/07 Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
2017/03/13 Javascript
Express之get,pos请求参数的获取
2017/05/02 Javascript
vue axios 表单提交上传图片的实例
2018/03/16 Javascript
JS与CSS3实现图片响应鼠标移动放大效果示例
2018/05/04 Javascript
vue首次赋值不触发watch的解决方法
2018/09/11 Javascript
python多线程扫描端口示例
2014/01/16 Python
Python基于正则表达式实现文件内容替换的方法
2017/08/30 Python
Python 实现淘宝秒杀的示例代码
2018/01/02 Python
python关于变量名的基础知识点
2020/03/03 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
2020/03/17 Python
python使用opencv resize图像不进行插值的操作
2020/07/05 Python
python实现取余操作的简单实例
2020/08/16 Python
Python特殊属性property原理及使用方法解析
2020/10/09 Python
CSS3新属性transition-property transform box-shadow实例学习
2013/06/06 HTML / CSS
微软香港官网及网上商店:Microsoft HK
2016/09/01 全球购物
法国床上用品商店:La Compagnie du lit
2019/12/26 全球购物
舞蹈教师自荐信
2014/01/27 职场文书
高中生期末评语大全
2014/01/28 职场文书
消防战士优秀事迹材料
2014/02/13 职场文书
年终考核实施方案
2014/05/26 职场文书
飞机制造技术专业求职信
2014/07/27 职场文书
市级三好学生事迹材料
2014/08/27 职场文书
导游词之绍兴柯岩古镇
2020/01/09 职场文书
深入理解Vue的数据响应式
2021/05/15 Vue.js
nginx部署多前端项目的几种方法
2021/05/25 Servers