php curl post数组_PHP发起curl POST请求时传递数组
使用 PHP 的 curl 可以发起 HTTP 外部请求,但是发起 POST 请求时,是无法直接传递数组的,从 curl 层面来说,也没有所谓的数组的概念,而更加通用也更合理的传递数据的格式其实是键值对(key value pair)。
那么,我们先得知道,为什么要传递数组。
HTTP 协议规定了 HTTP 请求的三个部分:状态行、请求头、消息主体。消息主体实际上是没有规定格式的。平常主要用到的几个请求头 Content-Type 为
application/x-www-form-urlencoded
multipart/form-data
application/json
text/xml
所以问题的答案很明白了,传递什么样的数据类型得看需要发送什么样的请求。
一个典型的 curl POST 请求是下面这样:
curl -X POST --data 'params[]=check1¶ms[]=check2' 'http://jayxhj.com/test/curl.php'
上面的请求将发送一个 Content-Type 为 application/x-www-form-urlencoded 的请求,请求的 body 为 params[]=check1¶ms[]=check2 ,在服务端,只需使用$_POST 即可获取。
那么回到 curl ,我们只需设置 option 为 CURLOPT_POSTFIELDS 的 VALUE 为 key/value pair ,即可将数组以字符串的形式传递至服务端,并直接由 $_POST 获取。
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://jayxhj.com/test/curl.php');
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$array = [
'jayxhj',
'pt'
];
$str = http_build_query($array);
curl_setopt($curl, CURLOPT_POSTFIELDS, $str);
$data = curl_exec($curl);
curl_close($curl);
var_dump($data);
(责任编辑:最模板)
php curl post数组_PHP发起curl POST请求时传递数组相关推荐
- 使用CURL检测Clinet侧发起的HTTP请求各阶段时间
2019独角兽企业重金招聘Python工程师标准>>> 第一.HTTP请求的过程介绍 一个HTTP请求,涉及多个阶段 1.DNS解析域名 2.请求从Clinet路由至Server,C ...
- HTTP GET请求方式传递数组参数
http GET请求方式如何传递数组参数?一起来看看. 先在本地服务器上来一个controller方法,我们把接收到的参数打印在控制台上,顺便多此一举地返回一下响应结果 用postman请求一下: 再 ...
- vue 请求参数数组_vue中get请求如何传递数组参数
前言: vue中在与后端进行数据交互时,使用axios发送请求,不做配置直接使用get请求传递数组类型参数的时候,后端是无法接收数据的,需要对axios一些简单的配置才能让后端完美的接收数组 1.问题 ...
- php curl header 下载_PHP通过curl下载文件到浏览器
public function downFile($url, $file_name) { header('Content-Description: File Transfer'); header('C ...
- java http参数传递_Java在HTTP请求中传递数组参数的方法
有个功能需要我请求别人提供的接口,该接口的参数是一个多维数组,大致类似这样:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ...
- GET请求如何传递数组参数
方式一 可以将数组参数传递多次,springmvc会将多个同名参数自动封装成数组或者集合对象,示例如下: # 请求URL http://127.0.0.1:8080/getUsers?name=张三& ...
- 在c语言程序中,数组名做函数调用的实参时,传递给形参的是,若用数组名作为函数调用时的实参,则实际上传递给的形参的是(C)...
若用数组名作为函数调用时的实参,则实际上传递给形参的是数组首地址. 数组首地址数组第一个元素的地址.数组名字本身就是一个指针,它是一个指针常量,指向的地址不变. 比如定义了一个数组变量,编译器就会在内 ...
- ajax传递数组怎么传?ajax数组传递
在我们平时的开发中,经常会需要用到ajax,关于ajax是什么,又该如何传递参数,相信通过上几篇文章你们已经有所了解.但是,ajax中要如何传递数组你们又知道吗?今天我们就来聊一聊ajax中该如何传递 ...
- ajax传递数组到后台时为空,ajax传递数组,后台接收为null解决方法
traditional:true,加上这个就好,默认为false,即允许深度序列化参数,但是servlet api不支持,所有设为true阻止就好了. $.ajax({ type:'post', ur ...
最新文章
- Java学习-----单例模式
- Can not issue data manipulation statements with executeQuery()错误解决
- LeetCode MySQL 626. 换座位
- c# winform TreeView与ListView的项互相拖动的应用[转载]
- (35)SystemVerilog语言编写呼吸灯
- Linux文本文件与Windows下的格式转换
- java 改像素不改尺寸_如何不改变分辨率的情况下缩小尺寸PNG图片
- docker mysql 高可用_使用docker 基于pxc镜像搭建mysql高可用集群
- interview material
- linux下文件和目录的颜色表示
- Python 批量修改PDF文件名
- 学习某一门技术的步骤(韩顺平老师提供)
- CCF-CSP真题《202209-3—防疫大数据》思路+python题解
- elasticsearch学习笔记--聚合函数篇
- 凹凸世界手游服务器维修,凹凸世界手游进不去怎么办 解决方法介绍
- UEFI Specification 第二章 概述
- Qt6教程之三(2) QT使用qss
- 独家记忆孙嘉灵海棠首发 婉转乐曲演绎动心爱情
- 基于matlab振动信号处理,基于PC及MATLAB的振动信号处理的实现
- Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks(MAML)简析