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 相关文章推荐
PHP字符转义相关函数小结(php下的转义字符串)
Apr 12 PHP
zf框架的校验器InArray使用示例
Mar 13 PHP
php自定义session示例分享
Apr 22 PHP
php 无限级分类,超级简单的无限级分类,支持输出树状图
Jun 29 PHP
php中http与https跨域共享session的解决方法
Dec 20 PHP
推荐10个提供免费PHP脚本下载的网站
Dec 31 PHP
PHP实现文件上传和多文件上传
Dec 24 PHP
PHP入门教程之图像处理技巧分析
Sep 11 PHP
PHP实现对xml的增删改查操作案例分析
May 19 PHP
php-fpm服务启动脚本的方法
Apr 27 PHP
PHP测试框架PHPUnit组织测试操作示例
May 28 PHP
PHP7新特性之抽象语法树(AST)带来的变化详解
Jul 17 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
PHP+redis实现添加处理投票的方法
2015/11/14 PHP
Laravel中批量赋值Mass-Assignment的真正含义详解
2017/09/29 PHP
thinkPHP框架实现的短信接口验证码功能示例
2018/06/20 PHP
JavaScript触发器详解
2007/03/10 Javascript
JavaScript函数、方法、对象代码
2008/10/29 Javascript
in.js 一个轻量级的JavaScript颗粒化模块加载和依赖关系管理解决方案
2011/07/26 Javascript
javascript实现div浮动在网页最顶上并带关闭按钮效果实例
2013/08/13 Javascript
JavaScript四种调用模式和this示例介绍
2014/01/02 Javascript
浅谈Javascript Base64 加密解密
2014/12/28 Javascript
javascript每日必学之多态
2016/02/23 Javascript
老生常谈onBlur事件与onfocus事件(js)
2016/07/09 Javascript
js原生跨域_用script标签的简单实现
2016/09/24 Javascript
关于jQuery.ajax()的jsonp碰上post详解
2017/07/02 jQuery
原生JS+Canvas实现五子棋游戏
2020/05/28 Javascript
Scala解析Json字符串的实例详解
2017/10/11 Javascript
解决vue.js中settimeout遇到的问题(时间参数短效果不稳定)
2020/07/21 Javascript
vue中全局路由守卫中替代this操作(this.$store/this.$vux)
2020/07/24 Javascript
vue使用echarts图表自适应的几种解决方案
2020/12/04 Vue.js
Python利用多进程将大量数据放入有限内存的教程
2015/04/01 Python
python进阶_浅谈面向对象进阶
2017/08/17 Python
对Python的多进程锁的使用方法详解
2019/02/18 Python
Python比较配置文件的方法实例详解
2019/06/06 Python
Django中celery执行任务结果的保存方法
2019/07/12 Python
python让函数不返回结果的方法
2020/06/22 Python
荷兰优雅女装网上商店:Heine
2016/11/14 全球购物
意大利文具和办公产品在线商店:Y-Office
2020/02/27 全球购物
介绍一下XMLHttpRequest对象的常用方法和属性
2013/05/24 面试题
社区维稳工作方案
2014/06/06 职场文书
项目工作说明书
2014/07/29 职场文书
2014幼儿园大班工作总结
2014/11/10 职场文书
迎国庆主题班会
2015/08/17 职场文书
创业计划之特色精品店
2019/08/12 职场文书
为什么说餐饮很难做,是因为你不了解这些新规则
2019/08/20 职场文书
python中if和elif的区别介绍
2021/11/07 Python
SQL SERVER实现连接与合并查询
2022/02/24 SQL Server
Android开发实现极为简单的QQ登录页面
2022/04/24 Java/Android