php curl post怎么传值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php curl post怎么传值相关的知识,希望对你有一定的参考价值。

curl http://xx.com/xxx -d info="\"name\":\"xxx\",\"mobile\":\"1213232323\"" 命令行这样执行是可以成功的,用php写的话 info=是怎么传的?我是这样写的curl_setopt($ch, CURLOPT_POSTFIELDS,'info='.$json); 没有成功 我输出后显示 info="name":"xxx","mobile":"1213232323" 怎么才能传正确参数?
我怎么才能传这样的数据 info="\"name\":\"xxx\",\"mobile\":\"1213232323\"" 我不是要json_encode 两次才能能行 那边的取值是用go语言的info := r.FormValue("info")

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$list_url);
curl_setopt($ch, CURLOPT_REFERER,$list_urled);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0); //是否显示头文件
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); //上传属性
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); //cookie存放的文件夹
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //是否流
curl_setopt($ch, CURLOPT_PROXY, '120.9.127.1:6675'); //使用代理
curl_setopt($ch, CURLOPT_VERBOSE,1); //出错提示
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"); //模拟浏览器

curl_setopt($ch, CURLOPT_NOBODY,true); //指定了curl抓的内容中包含header头,并且不要body内容
curl_exec($ch);

里面的$post_data就是你要post的上传的数据内容
希望对你能有所帮助。追问

我现在弄不懂的是那个info= 是我那样传的么 还有$json里的数据怎么才能跟我用命令时的一样

参考技术A 1、设置请求方式为post
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); #设置post请求
2、设置POST请求内容和请求长度
curl_setopt($ch, CURLOPT_POSTFIELDS,$data);#设置post数据
更多PHP相关的知识,可以参考:PHP程序员,雷雪松的个人博客。
参考技术B $post_data = array ("name" => "xxx","mobile" => "12345");
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$post_data为数组追问

info= 呢 这个不需要传的么 对方说接收的不是body

追答

$post_data = array ("info" => $json);

追问

还是不行

本回答被提问者采纳

以上是关于php curl post怎么传值的主要内容,如果未能解决你的问题,请参考以下文章

PHP POST请求 字符串和数组传值的区别

php使用curl的post方法字符串和数组传值的区别

php post方法传值 接收不到

php函数值传值/地址以及引用的用法

跨平台传值

传值传址 结构体