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 相关文章推荐
图书管理程序(三)
Oct 09 PHP
php录入页面中动态从数据库中提取数据的实现
Oct 09 PHP
使用 MySQL Date/Time 类型
Mar 26 PHP
php 中的4种标记风格介绍
May 10 PHP
ThinkPHP中url隐藏入口文件后接收alipay传值的方法
Dec 09 PHP
php中magic_quotes_gpc对unserialize的影响分析
Dec 16 PHP
PHP 9 大缓存技术总结
Sep 17 PHP
php使用Jpgraph创建3D饼形图效果示例
Feb 15 PHP
PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
Apr 20 PHP
yii2 url重写并隐藏index.php方法
Dec 10 PHP
thinkphp5.1框架中容器(Container)和门面(Facade)的实现方法分析
Aug 05 PHP
PHP实现单例模式建立数据库连接的方法分析
Feb 11 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 中的输出缓冲
2006/12/21 PHP
PHP 引用文件技巧
2010/03/02 PHP
CI框架入门之MVC简单示例
2016/11/21 PHP
php中各种定义变量的方法小结
2017/10/18 PHP
Jquery进度条插件 Progress Bar小问题解决
2011/07/12 Javascript
JS定时器实例详细分析
2013/10/11 Javascript
超实用的JavaScript代码段 附使用方法
2016/05/22 Javascript
全面解析JavaScript中apply和call以及bind(推荐)
2016/06/15 Javascript
Bootstrap Table使用心得总结
2016/11/29 Javascript
axios基本入门用法教程
2017/03/25 Javascript
JS运动改变单物体透明度的方法分析
2018/01/23 Javascript
微信小程序常见页面跳转操作简单示例
2019/05/01 Javascript
TensorFlow.js 微信小程序插件开始支持模型缓存的方法
2020/02/21 Javascript
[48:37]EG vs OG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python实现类继承实例
2014/07/04 Python
Linux下编译安装MySQL-Python教程
2015/02/02 Python
Python实现Windows上气泡提醒效果的方法
2015/06/03 Python
python数组过滤实现方法
2015/07/27 Python
python装饰器与递归算法详解
2016/02/18 Python
Python基于正则表达式实现检查文件内容的方法【文件检索】
2017/08/30 Python
python使用正则表达式的search()函数实现指定位置搜索功能
2017/11/10 Python
Python实现求一个集合所有子集的示例
2018/05/04 Python
Python tkinter的grid布局及Text动态显示方法
2018/10/11 Python
Python变量作用域LEGB用法解析
2020/02/04 Python
Python项目跨域问题解决方案
2020/06/22 Python
一款基于css3和jquery实现的动画显示弹出层按钮教程
2015/01/04 HTML / CSS
Kate Spade美国官网:纽约新兴时尚品牌,以包包闻名于世
2017/11/09 全球购物
拉斯维加斯酒店、演出、旅游、俱乐部及更多:Vegas.com
2019/02/28 全球购物
如何查找网页漏洞
2016/06/22 面试题
大一自我鉴定范文
2013/10/04 职场文书
英语专业毕业生自荐信范文
2013/12/31 职场文书
酒后驾驶检讨书
2014/01/27 职场文书
合作协议书范文
2014/08/20 职场文书
第28个世界无烟日活动总结
2015/02/10 职场文书
个人先进事迹总结
2015/02/26 职场文书
小学六一儿童节活动总结
2015/05/05 职场文书