PHP curl模拟表单以x-www-form-urlencoded方式POST请求
要想以 x-www-form-urlencoded 方式发送,最关键其实是发送的数据格式。
方式from-data发送的数据用的是array格式,而方式为 x-www-form-urlencoded 时需要用key=value&key=value的格式发送,发送的是string型的数据。
//表单x-www-form-urlencoded post提交
protected function curl_post($url , $data=array()){
//要想以 x-www-form-urlencoded 方式发送,最关键其实是发送的数据格式。
//方式from-data发送的数据用的是array格式,而方式为 x-www-form-urlencoded 时需要用key=value&key=value的格式发送,发送的是string型的数据。
$headers = array('Content-Type: application/x-www-form-urlencoded');//设置x-www-form-urlencoded
$data = http_build_query($data); //将数组格式转化成key=value格式
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); //设置头信息
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_POST, 1); // POST数据
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); // 把post的变量加上
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727;
.NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)');
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
本文为够意思原创文章,转载无需和我联系,但请注明来自够意思博客blog.go1s.cn:够意思博客 » PHP curl模拟表单以x-www-form-urlencoded方式POST请求