PHP中curl三种Post请求数据的方式小结
作者:m0_69254007
这篇文章主要给大家介绍了关于PHP中curl三种Post请求数据的方式,在PHP开发的过程中经常需要发送POST请求,POST相比GET要安全很多,而且传输的数据量也较大,需要的朋友可以参考下
今天要讲的HTTP请求头的Content-Type字段,就是在curl发送post请求的时候需要指定以何种方式来请求数据,常用的有3类:
1、form-data 。
就是 multipart/form-data 使用表单的方式来发送数据 是curl采用的默认发送方式。请求数组类型的格式。
Content-Type: multipart/form-data
2、x-www-form-urlencoded 。
就是 application/x-www-form-urlencoded 把请求的内容转变成url参数的形式进行发送,如:s1=red&s2=blue,这是标准的编码格式,但在curl中却不是默认的发送方式。可以使用http_build_query ()函数将表单数据数组编码为一个字符串。
Content-Type: x-www-form-urlencoded
3、raw(text/plain application/json text/xml等)。
是以纯文本的方式发送数据,可以选择json、xml等格式。请求json格式的数据。
Content-Type: application/json
分析:发现Content-Type的类型取决于$data的数据类型。如果$data是字符串,则Content-Type是application/x-www-form-urlencoded。如果$data是k=>v的数组,则Content-Type是multipart/form-data。
请求示例
// 模拟提交数据函数 public function httpPost($url,$data){ $curl = curl_init(); // 启动一个CURL会话 curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 对认证证书来源的检查 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在 curl_setopt($curl, CURLOPT_POST, true); // 发送一个常规的Post请求 curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包 curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环 curl_setopt($curl, CURLOPT_HEADER, false); // 显示返回的Header区域内容 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // 获取的信息以文件流的形式返回 $result = curl_exec($curl); // 执行操作 if (curl_errno($curl)) { return 'Error POST'.curl_error($curl); } curl_close($curl); // 关键CURL会话 return $result; // 返回数据 }
总结
到此这篇关于PHP中curl三种Post请求数据的方式的文章就介绍到这了,更多相关PHP curl Post请求数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!