php实现模拟post请求用法实例


Posted in PHP onJuly 11, 2015

本文实例讲述了php实现模拟post请求的方法。分享给大家供大家参考。具体如下:

class Request{
 public static function post($url, $post_data = '', $timeout = 5){//curl
  $ch = curl_init(); 
  curl_setopt ($ch, CURLOPT_URL, $url);
  curl_setopt ($ch, CURLOPT_POST, 1);
  if($post_data != ''){
   curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
  }
  curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
  curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
  curl_setopt($ch, CURLOPT_HEADER, false);
  $file_contents = curl_exec($ch);
  curl_close($ch);
  return $file_contents;
 } 
 public static function post2($url, $data=array()){//file_get_content
  $postdata = http_build_query(
   $data
  );   
  $opts = array('http' =>
      array(
       'method' => 'POST',
       'header' => 'Content-type: application/x-www-form-urlencoded',
       'content' => $postdata
      )
  );   
  $context = stream_context_create($opts);
  $result = file_get_contents($url, false, $context); 
  return $result;
 } 
 public static function post3($host,$path,$query,$others=''){//fsocket
  $post="POST $path HTTP/1.1\r\nHost: $host\r\n";
  $post.="Content-type: application/x-www-form-";
  $post.="urlencoded\r\n${others}";
  $post.="User-Agent: Mozilla 4.0\r\nContent-length: ";
  $post.=strlen($query)."\r\nConnection: close\r\n\r\n$query";
  $h=fsockopen($host,80);
  fwrite($h,$post);
  for($a=0,$r='';!$a;){
    $b=fread($h,8192);
    $r.=$b;
    $a=(($b=='')?1:0);
   }
  fclose($h);
  return $r;
 }
}
$url='http://******/con/Inter.php';
$data=Request::post($url,array('api'=>'tag_list'));
$data2=Request::post2($url,array('api'=>'tag_list'));
echo $data;

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
IIS6的PHP最佳配置方法
Mar 19 PHP
php 网页游戏开发入门教程一(webgame+design)
Oct 26 PHP
php中取得URL的根域名的代码
Mar 23 PHP
利用PHP生成静态HTML文档的原理
Oct 29 PHP
注意:php5.4删除了session_unregister函数
Aug 05 PHP
PHP的PSR规范中文版
Sep 28 PHP
discuz免激活同步登入代码修改方法(discuz同步登录)
Dec 24 PHP
让PHP显示Facebook的粉丝数量方法
Jan 08 PHP
PHP技术开发微信公众平台
Jul 22 PHP
PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
Jul 03 PHP
PHP CURL与java http使用方法详解
Jan 26 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
May 15 PHP
php实现源代码加密的方法
Jul 11 #PHP
PHP数组操作类实例
Jul 11 #PHP
PHP实现事件机制的方法
Jul 10 #PHP
php目录拷贝实现方法
Jul 10 #PHP
php通过前序遍历树实现无需递归的无限极分类
Jul 10 #PHP
php中array_multisort对多维数组排序的方法
Jun 21 #PHP
php获取文件类型和文件信息的方法
Jul 10 #PHP
You might like
使用数据库保存session的方法
2006/10/09 PHP
PHP strtok()函数的优点分析
2010/03/02 PHP
PHP字符串的编码问题的详细介绍
2013/04/27 PHP
php实现的Timer页面运行时间监测类
2014/09/24 PHP
juqery 学习之三 选择器 可见性 元素属性
2010/11/25 Javascript
在页面上用action传递参数到后台出现乱码的解决方法
2013/12/31 Javascript
IE浏览器IFrame对象内存不释放问题解决方法
2014/08/22 Javascript
jQuery的remove()方法使用详解
2015/08/11 Javascript
JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件
2015/12/20 Javascript
Node.js开发者必须了解的4个JS要点
2016/02/21 Javascript
JS去除空格和换行的正则表达式(推荐)
2016/06/14 Javascript
bootstrap学习使用(导航条、下拉菜单、轮播、栅格布局等)
2016/12/01 Javascript
Bootstrap的class样式小结
2016/12/01 Javascript
微信小程序 常见问题总结(4058,40013)及解决办法
2017/01/11 Javascript
移动端H5页面返回并刷新页面(BFcache)的方法
2018/11/06 Javascript
JS设置自定义快捷键并实现图片上下左右移动
2019/10/17 Javascript
关于Vue中axios的封装实例详解
2019/10/20 Javascript
webpack常用构建优化策略小结
2019/11/21 Javascript
原生js实现瀑布流效果
2020/03/09 Javascript
javascript实现一款好看的秒表计时器
2020/09/05 Javascript
解决vue初始化项目一直停在downloading template的问题
2020/11/09 Javascript
javascript实现滚轮轮播图片
2020/12/13 Javascript
在win和Linux系统中python命令行运行的不同
2016/07/03 Python
Python探索之ModelForm代码详解
2017/10/26 Python
python使用Matplotlib画饼图
2018/09/25 Python
python3 深浅copy对比详解
2019/08/12 Python
Python爬取股票信息,并可视化数据的示例
2020/09/26 Python
马来西亚银饰品牌:JEOEL
2017/12/15 全球购物
社区庆八一活动方案
2014/02/02 职场文书
学习雷锋寄语大全
2014/04/11 职场文书
公司授权委托书范文
2014/09/21 职场文书
四川省传达学习贯彻党的群众路线教育实践活动总结大会精神新闻稿
2014/10/26 职场文书
房屋授权无偿使用证明
2014/11/29 职场文书
大学生预备党员自我评价
2015/03/04 职场文书
Linux安装apache服务器的配置过程
2021/11/27 Servers
Redis实现订单过期删除的方法步骤
2022/06/05 Redis