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扩展ZF――Validate扩展
Jan 10 PHP
PHP strstr 函数判断字符串是否否存在的实例代码
Sep 28 PHP
PHP的PSR规范中文版
Sep 28 PHP
php实现监控varnish缓存服务器的状态
Dec 30 PHP
php编程每天必学之表单验证
Mar 01 PHP
深入浅析yii2-gii自定义模板的方法
Apr 26 PHP
PHP 数组基本操作方法详解
Jun 17 PHP
thinkPHP自定义类实现方法详解
Nov 30 PHP
ThinkPHP框架实现数据增删改
May 07 PHP
PHP实现上传多图即时显示与即时删除的方法
May 09 PHP
PHP实现对xml的增删改查操作案例分析
May 19 PHP
PHP 多任务秒级定时器的实现方法
May 13 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实现的网站目录扫描索引工具
2016/09/08 PHP
JS+PHP实现用户输入数字后显示最大的值及所在位置
2017/06/19 PHP
Yii2.0实现生成二维码功能实例
2017/10/24 PHP
Add a Picture to a Microsoft Word Document
2007/06/15 Javascript
Ext JS Grid在IE6 下宽度的问题解决方法
2009/02/15 Javascript
jQuery 使用手册(五)
2009/09/23 Javascript
javascript instanceof,typeof的区别
2010/03/24 Javascript
javascript innerHTML使用分析
2010/12/03 Javascript
javascript学习笔记(八) js内置对象
2012/06/19 Javascript
js 在定义的时候立即执行的函数表达式(function)写法
2013/01/16 Javascript
从jquery的过滤器.filter()方法想到的
2013/09/29 Javascript
Knockout数组(observable)使用详解示例
2013/11/15 Javascript
JQuery中使用Ajax赋值给全局变量异常的解决方法
2014/01/10 Javascript
JavaScript性能优化总结之加载与执行
2016/08/11 Javascript
Bootstrap中的fileinput 多图片上传及编辑功能
2016/09/05 Javascript
BootStrap实现手机端轮播图左右滑动事件
2016/10/13 Javascript
javascript 玩转Date对象(实例讲解)
2017/07/11 Javascript
React中如何引入Angular组件详解
2018/08/09 Javascript
工作中常用到的ES6语法
2018/09/04 Javascript
JavaScript实现随机点名器实例详解
2019/05/07 Javascript
基于Vue.js与WordPress Rest API构建单页应用详解
2019/09/16 Javascript
js模拟实现烟花特效
2020/03/10 Javascript
纯JS实现五子棋游戏
2020/05/28 Javascript
javascript中layim之查找好友查找群组
2021/02/06 Javascript
[01:06:25]Secret vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
TensorFlow实现AutoEncoder自编码器
2018/03/09 Python
Python数据可视化之画图
2019/01/15 Python
视图的作用
2014/12/19 面试题
自动化专业职业生涯规划书范文
2014/01/16 职场文书
企业安全生产目标责任书
2014/07/23 职场文书
代理人委托书
2014/09/16 职场文书
《我是什么》教学反思
2016/02/16 职场文书
靠谱的活动总结
2019/04/16 职场文书
python执行js代码的方法
2021/05/13 Python
基于Pygame实现简单的贪吃蛇游戏
2021/12/06 Python
Python实现科学占卜 让视频自动打码
2022/04/09 Python