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 相关文章推荐
基于mysql的bbs设计(四)
Oct 09 PHP
PHP中的正则表达式函数介绍
Feb 27 PHP
php表单请求获得数据求和示例
May 15 PHP
php实现根据字符串生成对应数组的方法
Sep 22 PHP
smarty模板引擎之分配数据类型
Mar 30 PHP
php获取、检查类名、函数名、方法名的函数方法
Jun 25 PHP
PHP环境搭建的详细步骤
Jun 30 PHP
PHP数据的提交与过滤基本操作实例详解
Nov 11 PHP
ThinkPHP中调用PHPExcel的实现代码
Apr 08 PHP
PHP迭代器和迭代的实现与使用方法分析
Apr 19 PHP
CI框架教程之优化验证码机制详解【验证码辅助函数】
Apr 16 PHP
PHP实现的微信公众号扫码模拟登录功能示例
May 30 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
Laravel实现通过blade模板引擎渲染视图
2019/10/25 PHP
Laravel5.1 框架路由基础详解
2020/01/04 PHP
PHP基于进程控制函数实现多线程
2020/12/09 PHP
同一个表单 根据要求递交到不同页面的实现方法小结
2009/08/05 Javascript
基于jquery可配置循环左右滚动例子
2011/09/09 Javascript
jquery实现checkbox全选全不选的简单实例
2013/12/31 Javascript
javascript引用赋值(地址传值)用法实例
2015/01/13 Javascript
jquery分隔Url的param方法(推荐)
2016/05/25 Javascript
Three.js学习之网格
2016/08/10 Javascript
JavaScript中匿名函数的递归调用
2017/01/22 Javascript
Angular实现跨域(搜索框的下拉列表)
2017/02/16 Javascript
详解angular ui-grid之过滤器设置
2017/06/07 Javascript
关于Webpack dev server热加载失败的解决方法
2018/02/22 Javascript
vue toggle做一个点击切换class(实例讲解)
2018/03/13 Javascript
微信小程序自定义tabBar组件开发详解
2020/09/24 Javascript
微信小程序日历效果
2018/12/29 Javascript
解决vant中 tab栏遇到的坑 van-tabs
2020/11/04 Javascript
sublime text 3配置使用python操作方法
2017/06/11 Python
简单了解OpenCV是个什么东西
2017/11/10 Python
numpy向空的二维数组中添加元素的方法
2018/11/01 Python
Python通过paramiko远程下载Linux服务器上的文件实例
2018/12/27 Python
Python编程flask使用页面模版的方法
2018/12/28 Python
python如何将两张图片生成为全景图片
2020/03/05 Python
python轮询机制控制led实例
2020/05/03 Python
Django web自定义通用权限控制实现方法
2020/11/24 Python
基于 HTML5 WebGL 实现的垃圾分类系统
2019/10/08 HTML / CSS
c++工程师面试问题
2013/08/04 面试题
会计自我鉴定范文
2013/10/06 职场文书
考博专家推荐信模板
2013/12/02 职场文书
八年级美术教学反思
2014/02/02 职场文书
国际贸易专业自荐信
2014/06/10 职场文书
搞笑的婚礼主持词
2015/06/29 职场文书
离职员工给领导和同事的感谢信
2015/11/03 职场文书
2016庆祝教师节新闻稿
2015/11/25 职场文书
交通安全教育心得体会
2016/01/15 职场文书
防止web项目中的SQL注入
2021/12/06 MySQL