curl模拟post请求提交
2016-04-12 14:01
411 查看
header('content-type:text/html;charset=utf-8'); function curlPost($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.如果出错 return curl_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 $cookie_file = tempnam('./temp','cookie'); function weixinPost($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.如果出错 return curl_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; ?>
相关文章推荐
- 网易 比较重量
- python 爬虫The One的 数据两种方式
- Spark快速入门指南
- C++ Builder中导入Excel表格数据
- linux基础命令
- [分类讨论 思路题] BZOJ 3135 [Baltic2013] pipes
- android 自定义含有滚动选择器的对话框
- 插件——uploadify 发送多余请求的问题
- 字典树(讲解+模版)
- Android:SingleTask对Intent传递数据的影响及解决办法
- SSH访问中文Linux及文件传输
- iOS开发--音频播放、录音、视频播放、拍照、视频录制(转载)
- 英语词根词缀记忆大全
- 移动端 根据屏幕宽度来等比调解高度的大小
- javascript 中__proto__和prototype详解
- 关于ajax——返回为200却到error页面,同步ajax页面跳转不成功
- 前端也应该了解点 docker 知识:docker 架构
- Linux暂停和恢复进程
- Intent 传递类对象的方法一
- nyoj 95众数问题<水>