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 相关文章推荐
用Simple Excel导出xls实现方法
Dec 06 PHP
深入理解curl类,可用于模拟get,post和curl下载
Jun 08 PHP
使用php将某个目录下面的所有文件罗列出来的方法详解
Jun 21 PHP
php通过Chianz.com获取IP地址与地区的方法
Jan 14 PHP
php使用Jpgraph绘制饼状图的方法
Jun 10 PHP
php实现简单的MVC框架实例
Sep 23 PHP
thinkphp微信开发(消息加密解密)
Dec 02 PHP
php操作路径的经典方法(必看篇)
Oct 04 PHP
PHP二维数组去重算法
Dec 17 PHP
PHP使用Nginx实现反向代理
Sep 20 PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 PHP
PHP实现的mongoDB数据库操作类完整实例
Apr 10 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中检查PHP文件是否有语法错误的方法
2009/12/23 PHP
php生成二维码
2015/08/10 PHP
PHP编程获取图片的主色调的方法【基于Imagick扩展】
2017/08/02 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
IE iframe的onload方法分析小结
2010/01/07 Javascript
浅析JavaScript基本类型与引用类型
2014/05/28 Javascript
原生javascript实现的分页插件pagenav
2014/08/28 Javascript
jQuery遮罩层实例讲解
2017/05/11 jQuery
JavaScript之underscore_动力节点Java学院整理
2017/07/03 Javascript
js 判断一个数字是不是2的n次方幂的实例
2017/11/26 Javascript
JavaScript 性能提升之路(推荐)
2019/04/10 Javascript
jquery插件开发模式实例详解
2019/07/20 jQuery
微信小程序实现菜单左右联动
2020/05/19 Javascript
vue实现图片按比例缩放问题操作
2020/08/11 Javascript
[01:00] DOTA2英雄背景故事第五期之重力引力法则谜团
2020/07/16 DOTA
使用Python获取Linux系统的各种信息
2014/07/10 Python
python采用getopt解析命令行输入参数实例
2014/09/30 Python
遍历python字典几种方法总结(推荐)
2016/09/11 Python
python 处理dataframe中的时间字段方法
2018/04/10 Python
python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程
2018/05/22 Python
使用python Fabric动态修改远程机器hosts的方法
2018/10/26 Python
ipython和python区别详解
2019/06/26 Python
基于梯度爆炸的解决方法:clip gradient
2020/02/04 Python
Python pexpect模块及shell脚本except原理解析
2020/08/03 Python
What is view? why do we have view?
2012/06/22 面试题
shell程序如何生命变量?shell变量是弱变量吗?
2014/11/10 面试题
小学运动会表扬稿
2014/01/19 职场文书
运动会开幕式邀请函
2014/01/22 职场文书
环境保护标语
2014/06/20 职场文书
治安消防安全责任书
2014/07/23 职场文书
2014年化妆品销售工作总结
2014/12/01 职场文书
化妆品促销活动总结
2015/05/07 职场文书
党课主持词大全
2015/06/30 职场文书
交通安全教育主题班会
2015/08/12 职场文书
小学语文的各类谚语(70首)
2019/08/15 职场文书
SpringBoot中HttpSessionListener的简单使用方式
2022/03/17 Java/Android