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图片处理类 phpThumb参数用法介绍
Mar 11 PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
Apr 24 PHP
ThinkPHP之foreach标签使用概述
Jun 30 PHP
分享一个Laravel好用的Cache宏
Mar 02 PHP
CI框架AR数据库操作常用函数总结
Nov 21 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
Jan 17 PHP
PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
Apr 27 PHP
PHP实现Unicode编码相互转换的方法示例
Nov 17 PHP
Laravel如何使用Redis共享Session
Feb 23 PHP
PHP设计模式之模板方法模式实例浅析
Dec 20 PHP
Laravel框架控制器的request与response用法示例
Sep 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
PHP 分页类(模仿google)-面试题目解答
2009/09/13 PHP
php检索或者复制远程文件的方法
2015/03/13 PHP
smarty模板引擎之配置文件数据和保留数据
2015/03/30 PHP
PHP统计当前在线用户数实例讲解
2015/10/21 PHP
PHP实现RTX发送消息提醒的实例代码
2017/01/03 PHP
Laravel框架创建路由的方法详解
2019/09/04 PHP
javascript实现动态CSS换肤技术的脚本
2007/06/29 Javascript
解决extjs在firefox中关闭窗口再打开后iframe中js函数访问不到的问题
2008/11/06 Javascript
js判断鼠标同时离开两个div的思路及代码
2013/05/31 Javascript
ExtJS实现文件下载的方法实例
2013/11/09 Javascript
基于Bootstrap里面的Button dropdown打造自定义select
2016/05/30 Javascript
BootStrap创建响应式导航条实例代码
2016/05/31 Javascript
Bootstrap CSS布局之按钮
2016/12/17 Javascript
javascript监听页面刷新和页面关闭事件方法详解
2017/01/09 Javascript
JavaScript实现二分查找实例代码
2017/02/22 Javascript
vue中如何引入jQuery和Bootstrap
2017/04/10 jQuery
p5.js入门教程之键盘交互
2018/03/19 Javascript
详解vue路由篇(动态路由、路由嵌套)
2019/01/27 Javascript
深入浅出 Vue 系列 -- 数据劫持实现原理
2019/04/23 Javascript
微信小程序国际化探索实现(附源码地址)
2020/05/20 Javascript
[02:04]2016国际邀请赛中国区预选赛VG.R晋级之路
2016/07/01 DOTA
使用python3.5仿微软记事本notepad
2016/06/15 Python
总结python中pass的作用
2019/02/27 Python
对Python函数设计规范详解
2019/07/19 Python
pytorch 归一化与反归一化实例
2019/12/31 Python
Python中remove漏删和索引越界问题的解决
2020/03/18 Python
Python venv虚拟环境配置过程解析
2020/07/08 Python
检测浏览器对HTML5和CSS3支持度的方法
2015/06/25 HTML / CSS
美国领先的个性化礼品商城:Personalization Mall
2019/07/27 全球购物
在数据文件自动增长时,自动增长是否会阻塞对文件的更新
2014/05/01 面试题
党的群众路线教育实践活动公开承诺书
2014/03/28 职场文书
《大自然的语言》教学反思
2014/04/08 职场文书
八一建军节慰问信
2015/02/14 职场文书
承诺书范本大全
2015/05/04 职场文书
结婚幸福感言
2015/08/01 职场文书
创业者如何撰写出一份打动投资人的商业计划书?
2019/07/02 职场文书