相信很多做PHP的朋友都有使用过curl,在做接口服务的时候,基本都有涉及到,也都会用,但是一些细节问题如果没有遇到可能就不会了解的很清楚。
一个post数据的函数:
function curlPost($url,$data)
{
$ch = curl_init ();
curl_setopt ( $ch, CURLOPT_URL, $url );
curl_setopt ( $ch, CURLOPT_POST, 1 );
curl_setopt ( $ch, CURLOPT_HEADER, 0 );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );
// curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false );
$return = curl_exec ( $ch );
$err = curl_error($ch);
if (!empty($err)) {
var_dump($err);
}
curl_close ( $ch );
return $return;
}
curl在模拟post发送数据的时候,Http头部的Content-type的值根据你post数据data的类型不同值也是不同的。
即CURLOPT_POSTFIELDS参数使用数组和字符串时的不同
注意
当你的data是一个数组的时候,Content-type
的值为multipart/form-data
当你data是一个字符串的时候,Content-type
的值为application/x-www-form-urlencoded
如果做接口服务的时候,对方有特殊要求,根据需要选择传值的方式..