curl模拟post请求提交

header('content-type:text/html;charset=utf-8');

functioncurlPost($url,$data,$method){

$ch= curl_init();//1.初始化

curl_setopt($ch, CURLOPT_URL,$url);//2.请求地址

curl_setopt($ch, CURLOPT_CUSTOMREQUEST,$method);//3.请求方式

//4.参数如下

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);//https

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');//模拟浏览器

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

curl_setopt($ch, CURLOPT_AUTOREFERER, 1);

curl_setopt($ch, CURLOPT_HTTPHEADER,array('Accept-Encoding: gzip, deflate'));//gzip解压内容

curl_setopt($ch, CURLOPT_ENCODING,'gzip,deflate');

if($method=="POST"){//5.post方式的时候添加数据

curl_setopt($ch, CURLOPT_POSTFIELDS,$data);

}

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$tmpInfo= curl_exec($ch);//6.执行

if(curl_errno($ch)) {//7.如果出错

returncurl_error($ch);

}

curl_close($ch);//8.关闭

return$tmpInfo;

}

$data=array('name'=>'1234');

$url="http://www.sohu.com/";

$method="GET";

$file=curlPost($url,$data,$method);

$file=mb_convert_encoding($file,'UTF-8','GBK');

echo$file;

当cookie认证登陆的时候

[php]view plaincopy


$cookie_file= tempnam('./temp','cookie');

functionweixinPost($url,$data,$method,$setcooke=false,$cookie_file=false){

$ch= curl_init();//1.初始化

curl_setopt($ch, CURLOPT_URL,$url);//2.请求地址

curl_setopt($ch, CURLOPT_CUSTOMREQUEST,$method);//3.请求方式

//4.参数如下

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

curl_setopt($ch, CURLOPT_AUTOREFERER, 1);

if($method=="POST"){//5.post方式的时候添加数据

curl_setopt($ch, CURLOPT_POSTFIELDS,$data);

}

if($setcooke==true){

curl_setopt($ch, CURLOPT_COOKIEJAR,$cookie_file);

}else{

curl_setopt($ch, CURLOPT_COOKIEFILE,$cookie_file);

}

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$tmpInfo= curl_exec($ch);//6.执行

if(curl_errno($ch)) {//7.如果出错

returncurl_error($ch);

}

curl_close($ch);//8.关闭

return$tmpInfo;

}

$data=array('username'=>'***','password'=>'***');

$url="http://www.xinxinj.com/login.php";

$method="POST";

$file=weixinPost($url,$data,$method,true,$cookie_file);

echo$file;

$url="http://www.xinxinj.com/admin.php";

$method="GET";

$file=weixinPost($url,$data,$method,false,$cookie_file);

echo$file;

?>

如果上述还是无法解决,那么采用以下方案

[php]view plaincopy

$ch= curl_init();

$url='*******';

$header=array(

'cookie:********'

);

// 添加apikey到header

curl_setopt($ch, CURLOPT_HTTPHEADER  ,$header);

//curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:50.0) Gecko/20100101 Firefox/50.0');

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

curl_setopt($ch, CURLOPT_AUTOREFERER, 1);

// 执行HTTP请求

curl_setopt($ch, CURLOPT_URL ,$url);

$res= curl_exec($ch);

var_dump($res);

你可能感兴趣的:(curl模拟post请求提交)