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 相关文章推荐
eWebEditor v3.8 商业完整版 (PHP)
Dec 06 PHP
php中的实现trim函数代码
Mar 19 PHP
php cli 方式 在crotab中运行解决
Feb 08 PHP
fleaphp常用方法分页之Pager使用方法
Apr 23 PHP
Sorting Array Values in PHP(数组排序)
Sep 15 PHP
php分页思路以及在ZF中的使用
May 30 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
Jun 20 PHP
php实例分享之二维数组排序
May 15 PHP
php自动给网址加上链接的方法
Jun 02 PHP
php判断str字符串是否是xml格式数据的方法示例
Jul 26 PHP
thinkphp分页集成实例
Jul 24 PHP
laravel实现批量更新多条记录的方法示例
Oct 22 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+mysql实现无限级分类 | 树型显示分类关系
2006/11/19 PHP
PHP stream_context_create()作用和用法分析
2011/03/29 PHP
PHP全概率运算函数(优化版) Webgame开发必备
2011/07/04 PHP
PHP中防止直接访问或查看或下载config.php文件的方法
2012/07/07 PHP
PHP Reflection API详解
2015/05/12 PHP
PHP实现针对日期,月数,天数,周数,小时,分,秒等的加减运算示例【基于strtotime】
2017/04/19 PHP
PHP数组内存利用率低和弱类型详细解读
2017/08/10 PHP
PDO::errorCode讲解
2019/01/28 PHP
smarty模板的使用方法实例分析
2019/09/18 PHP
给文字加上着重号的JS代码
2013/11/12 Javascript
javascript为下拉列表动态添加数据项
2014/05/23 Javascript
js入门之Function函数的使用方法【新手必看】
2016/11/22 Javascript
基于JavaScript实现本地图片预览
2017/02/08 Javascript
原生JS实现自定义下拉单选选择框功能
2018/10/12 Javascript
Vue.js下拉菜单组件使用方法详解
2019/10/19 Javascript
解决vue组件中click事件失效的问题
2019/11/09 Javascript
Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除)
2020/03/23 Javascript
vue-resource 拦截器interceptors使用详解
2021/01/18 Vue.js
详解Python中time()方法的使用的教程
2015/05/22 Python
对python 读取线的shp文件实例详解
2018/12/22 Python
Python3.7 pyodbc完美配置访问access数据库
2019/10/03 Python
python zip()函数的使用示例
2020/09/23 Python
Python创建简单的神经网络实例讲解
2021/01/04 Python
CSS3 Calc实现滚动条出现页面不跳动问题
2017/09/14 HTML / CSS
详解利用canvas实现环形进度条的方法
2019/06/12 HTML / CSS
HTML5 Canvas阴影使用方法实例演示
2013/08/02 HTML / CSS
GLAMGLOW格莱魅美国官网:美国知名的面膜品牌
2016/12/31 全球购物
JRE、JDK、JVM之间的关系怎样
2012/05/16 面试题
单位提档介绍信
2014/01/17 职场文书
促销活动总结
2014/04/28 职场文书
自主招生推荐信范文
2014/05/10 职场文书
2015年暑假生活总结
2015/07/13 职场文书
农贸批发市场管理制度
2015/08/07 职场文书
三好学生主要事迹材料
2015/11/03 职场文书
webpack的移动端适配方案小结
2021/07/25 Javascript
【DOTA2】半决赛强强对话~ PSG LGD vs EHOME - DPC 2022 CN REGIONAL FINALS WINTER
2022/04/02 DOTA