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 源代码压缩小工具
Dec 22 PHP
PHP与SQL注入攻击防范小技巧
Sep 16 PHP
PHP中防止直接访问或查看或下载config.php文件的方法
Jul 07 PHP
PHP实现图片压缩的两则实例
Jul 19 PHP
phpExcel中文帮助手册之常用功能指南
Aug 18 PHP
php实现把url转换迅雷thunder资源下载地址的方法
Nov 07 PHP
php将图片保存入mysql数据库失败的解决方法
Dec 27 PHP
php使用cookie显示用户上次访问网站日期的方法
Jan 26 PHP
WordPress中限制非管理员用户在文章后只能评论一次
Dec 31 PHP
php实现的简单中文验证码功能示例
Jan 03 PHP
Ecshop 后台添加新功能栏目及管理权限设置教程
Nov 21 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/10/09 PHP
php4的session功能评述(二)
2006/10/09 PHP
PHP伪造referer实例代码
2008/09/20 PHP
php删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
2013/06/27 PHP
php生成图片缩略图的方法
2015/04/07 PHP
thinkPHP中验证码的简单使用方法
2015/12/26 PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
2017/06/02 PHP
php 处理png图片白色背景色改为透明色的实例代码
2018/12/10 PHP
在JavaScript中遭遇级联表达式陷阱
2007/03/08 Javascript
jquery tablesorter.js 支持中文表格排序改进
2009/12/09 Javascript
javascript parseInt() 函数的进制转换注意细节
2013/01/08 Javascript
浅析JavaScript中的隐式类型转换
2013/12/05 Javascript
在HTML代码中使用JavaScript代码的例子
2014/10/16 Javascript
jQuery筛选数组之grep、each、inArray、map的用法及遍历json对象
2016/06/20 Javascript
关于原生js中bind函数的简单实现
2016/08/10 Javascript
JSON对象 详解及实例代码
2016/10/18 Javascript
使用javascript函数编写简单银行取钱存钱流程
2018/05/26 Javascript
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
2019/03/19 Javascript
一次让你了解全部JavaScript的作用域
2019/06/24 Javascript
vue中使用rem布局代码详解
2019/10/30 Javascript
[03:17]DOTA2英雄基础教程 剧毒术士
2013/12/12 DOTA
Python上传package到Pypi(代码简单)
2016/02/06 Python
Python中遇到的小问题及解决方法汇总
2017/01/11 Python
Python正则表达式匹配中文用法示例
2017/01/17 Python
Python科学计算包numpy用法实例详解
2018/02/08 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
2018/12/18 Python
python定位xpath 节点位置的方法
2019/08/27 Python
Python 用turtle实现用正方形画圆的例子
2019/11/21 Python
关于迟到的检讨书
2014/01/26 职场文书
商务英语广告词大全
2014/03/18 职场文书
文员求职信
2014/07/15 职场文书
绿色小区申报材料
2014/08/22 职场文书
2016年校园植树节广播稿
2015/12/17 职场文书
导游词之无锡梅园
2019/11/28 职场文书
基于Python实现流星雨效果的绘制
2022/03/18 Python
Python爬取奶茶店数据分析哪家最好喝以及性价比
2022/09/23 Python