关于PHP中POST传递参数问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于PHP中POST传递参数问题相关的知识,希望对你有一定的参考价值。
参考技术A 将数据转换成 json 格式的字符串, 并通过 CURL 的 POST 的形式传递参数给服务端, 但是在服务端无法用 $_POST 获取到数据。后台用 $_POST 获取到的信息为空, 但是可以通过 $post = file_get_contents("php://input") 获取到请求的相关信息。Coentent-Type 的值为 application/x-www-data-urlencode 和 multipart/form-data 时, php才会将http请求数据包中的数据填进 $_POST 。
如果 POST 的原始数据是一维数组或&拼接的标准格式的键值对字符串,那么可以用 $_POST 来获取。
如果要通过 file_get_contents 获取,这种情况下可以发送 json 字符串,用 json_encode 编码转换一下,或者使用 http_build_query 。
1、 区别 PHP 的 $_POST、$HTTP_RAW_POST_DATA 和 php://input
2、 accept 和 content-Type区别
3、 Http Header里的Content-Type
关于在php中使用curl发送get请求时参数传递问题的解析
get请求是最简单的请求,不过要注意自己的请求是http请求还是https的请求,因为https请求时要关闭SSL验证,不然验证通不过,没有办法请求到数据。
GET请求的参数
get传递参数和正常请求url传递参数的方式一样
1 function get_info($card){ 2 $url ="http://www.sdt.com/api/White/CardInfo?cardNo=".$bank_card; 3 $ch = curl_init(); 4 //设置选项,包括URL 5 curl_setopt($ch, CURLOPT_URL, $url); 6 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 7 curl_setopt($ch, CURLOPT_HEADER, 0); 8 //执行并获取HTML文档内容 9 $output = curl_exec($ch); 10 //释放curl句柄 11 curl_close($ch); 12 return $output; 13 }
HTTPS请求时要注意SSL验证
function get_bankcard_info($bank_card){ $url="https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-8&cardNo=".$bank_card."&cardBinCheck=true"; $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_SSL_VERIFYPEER, false);//绕过ssl验证 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //执行并获取HTML文档内容 $output = curl_exec($ch); //释放curl句柄 curl_close($ch); return $output; }
以上是关于关于PHP中POST传递参数问题的主要内容,如果未能解决你的问题,请参考以下文章