php curl post 时出现的问题解决
网络编程 2021-07-05 09:49www.168986.cn编程入门
这篇文章主要介绍了php curl post 时出现问题的解决方法,需要的朋友可以参考下
在 a.php 中以 POST 方式向 b.php 提交数据,但是 b.php 下就是无法接收到数据,而 CURL 操作又显示成功,非常诡异。原来,“传递一个数组到CURLOPT_POSTFIELDS,cURL会把数据编码成 multipart/form-data,而然传递一个URL-encoded字符串时,数据会被编码成 application/x--form-urlencoded。
",而和我一样对 CURL 不太熟悉的人在编写程序时,代码往往是狼蚁网站SEO优化的样子:
$data = array( 'Title' => $title, 'Content' => $content, 'ComeFrom' => $efrom );
curl_set($ch, CURLOPT_DNS_USE_GLOBAL_CACHE, false);
curl_set($ch, CURLOPT_URL, 'http://example./b.php');
curl_set($ch, CURLOPT_POST, 1);
curl_set($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch);
也就是将所要提交的数据以数组的形式通过 POST 发送,而这样就会导致 CURL 使用“错误"的编码“multipart/form-data",其效果相当于我们直接以“<form method="post" action="b.php" enctype="multipart/form-data">"这样的表单来完成操作,大家可以试试,这时的“b.php"是无论如何也无法通过 $_POST 来接收数据的。
所以,正确的做法应该是将上述范例代码中的 $data 由数组变为经 urlencode() 编码后的
",而和我一样对 CURL 不太熟悉的人在编写程序时,代码往往是狼蚁网站SEO优化的样子:
代码如下:
$data = array( 'Title' => $title, 'Content' => $content, 'ComeFrom' => $efrom );
curl_set($ch, CURLOPT_DNS_USE_GLOBAL_CACHE, false);
curl_set($ch, CURLOPT_URL, 'http://example./b.php');
curl_set($ch, CURLOPT_POST, 1);
curl_set($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch);
也就是将所要提交的数据以数组的形式通过 POST 发送,而这样就会导致 CURL 使用“错误"的编码“multipart/form-data",其效果相当于我们直接以“<form method="post" action="b.php" enctype="multipart/form-data">"这样的表单来完成操作,大家可以试试,这时的“b.php"是无论如何也无法通过 $_POST 来接收数据的。
所以,正确的做法应该是将上述范例代码中的 $data 由数组变为经 urlencode() 编码后的
编程语言
- 机械手焊接机器人编程 机械手焊接设备编程
- vb数据库编程实例,vb做数据库
- tiobe世界编程语言排行榜,全球编程语言排行
- 成都java编程培训 成都it编程培训中心
- 编程基础培训,编程基础知识培训
- flash游戏编程基础教程,flash游戏开发教程
- 不会英语能学编程吗 不会英语可以学程序员吗
- 爱心代码编程C语言 爱心代码编程c语言公式
- c语言编程学习入门 c语言编程快速入门
- 西门子plc编程培训 西门子plc编程培训班
- 哪里可以学编程 台州哪里可以学编程
- 少儿编程哪个好 少儿编程哪个品牌好
- 编程是什么意思,图形编程是什么意思
- c语言编程软件下载,c语言编程软件在哪下载
- java编程软件下载,java编程下载手机版
- ug编程培训学校,ug编程培训教程