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 相关文章推荐
Windows下PHP5和Apache的安装与配置
Sep 05 PHP
PHP 实例化类的一点摘记
Mar 23 PHP
php不用正则采集速度探究总结
Mar 24 PHP
php下使用以下代码连接并测试
Apr 09 PHP
一个PHP缓存类代码(附详细说明)
Jun 09 PHP
探讨如何在PHP开启gzip页面压缩实例
Jun 09 PHP
浅谈php和.net的区别
Sep 28 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
May 02 PHP
swoole和websocket简单聊天室开发
Nov 18 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
Dec 06 PHP
mysqli扩展无法在PHP7下升级问题的解决
Sep 10 PHP
PHP设计模式之适配器模式(Adapter)原理与用法详解
Dec 12 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/10/09 PHP
php,不用COM,生成excel文件
2006/10/09 PHP
PHP7新增函数
2021/03/09 PHP
jQuery DOM操作小结与实例
2010/01/07 Javascript
javascript Array对象基础知识小结
2010/11/16 Javascript
jQuery代码优化 选择符篇
2011/11/01 Javascript
13 个JavaScript 性能提升技巧分享
2012/07/26 Javascript
JS中setTimeout()的用法详解
2013/04/14 Javascript
如何将一个String和多个String值进行比较思路分析
2013/04/22 Javascript
javascript实现连续赋值
2015/08/10 Javascript
jquery实现删除一个元素后面的所有元素功能
2015/12/21 Javascript
jQuery控制frames及frame页面JS的方法
2016/03/08 Javascript
用jquery获取自定义的标签属性的值简单实例
2016/09/17 Javascript
关于webuploader插件使用过程遇到的小问题
2016/11/07 Javascript
jquery+html仿翻页相册功能
2016/12/20 Javascript
js 判断数据类型的几种方法
2017/01/13 Javascript
ES6字符串模板,剩余参数,默认参数功能与用法示例
2017/04/06 Javascript
JS加密插件CryptoJS实现的DES加密示例
2018/08/16 Javascript
区分vue-router的hash和history模式
2020/10/03 Javascript
8个非常实用的Vue自定义指令
2020/12/15 Vue.js
python生成指定长度的随机数密码
2014/01/23 Python
python益智游戏计算汉诺塔问题示例
2014/03/05 Python
Django 中使用流响应处理视频的方法
2018/07/20 Python
Python查找最长不包含重复字符的子字符串算法示例
2019/02/13 Python
Pytorch之view及view_as使用详解
2019/12/31 Python
使用Django清空数据库并重新生成
2020/04/03 Python
size?丹麦官网:英国伦敦的球鞋精品店
2019/04/15 全球购物
C/C++程序员常见面试题二
2015/11/19 面试题
2014最新离职证明范本
2014/09/12 职场文书
大学生国庆节65周年演讲稿范文
2014/09/25 职场文书
单身证明格式样本
2015/06/15 职场文书
2016拓展训练心得体会范文
2016/01/12 职场文书
关于做家务的心得体会
2016/01/23 职场文书
swagger如何返回map字段注释
2021/07/03 Java/Android
Go语言特点及基本数据类型使用详解
2022/03/21 Golang
python神经网络Xception模型
2022/05/06 Python