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导入Excel到MySQL的方法
Apr 23 PHP
求PHP数组最大值,最小值的代码
Oct 31 PHP
PhpMyAdmin出现export.php Missing parameter: what /export_type错误解决方法
Aug 09 PHP
PHP调用JAVA的WebService简单实例
Mar 11 PHP
php魔术变量用法实例详解
Nov 13 PHP
php简单获取目录列表的方法
Mar 24 PHP
WordPress中获取所使用的模板的页面ID的简单方法
Dec 31 PHP
PHP的PDO常用类库实例分析
Apr 07 PHP
详解PHP使用Redis存储session时的一个Warning定位
Jul 05 PHP
PHP设计模式之装饰器模式实例详解
Feb 07 PHP
php+js实现裁剪任意形状图片
Oct 31 PHP
vmware linux系统安装最新的php7图解
Apr 14 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
日本十大惊悚动漫
2020/03/04 日漫
深入php多态的实现详解
2013/06/09 PHP
php的闭包(Closure)匿名函数详解
2015/02/22 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
学习YUI.Ext 第六天--关于树TreePanel(Part 2异步获取节点)
2007/03/10 Javascript
extjs之去除s.gif的影响
2010/12/25 Javascript
IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
2011/08/28 Javascript
JQuery入门——移除绑定事件unbind方法概述及应用
2013/02/05 Javascript
JS实现根据出生年月计算年龄
2014/01/10 Javascript
使用jQuery实现返回顶部
2015/01/26 Javascript
javascript查询字符串参数的方法
2015/01/28 Javascript
js数组依据下标删除元素
2015/04/14 Javascript
jQuery判断指定id的对象是否存在的方法
2015/05/22 Javascript
js精美的幻灯片画集特效代码分享
2015/08/29 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
2016/05/25 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
H5移动端图片压缩上传开发流程
2016/11/09 Javascript
vue引入新版 vue-awesome-swiper插件填坑问题
2018/01/25 Javascript
electron实现qq快捷登录的方法示例
2018/10/22 Javascript
ES6 Object方法扩展的应用实例分析
2019/06/25 Javascript
JavaScript基于SVG的图片切换效果实例代码
2020/12/15 Javascript
[01:11:28]DOTA2-DPC中国联赛定级赛 RNG vs Phoenix BO3第一场 1月8日
2021/03/11 DOTA
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
2018/04/02 Python
Python第三方Window模块文件的几种安装方法
2018/11/22 Python
Django文件存储 默认存储系统解析
2019/08/02 Python
Python: 传递列表副本方式
2019/12/19 Python
python dir函数快速掌握用法技巧
2020/12/09 Python
HTML+CSS3+JS 实现的下拉菜单
2020/11/25 HTML / CSS
十八届三中全会宣传方案
2014/02/21 职场文书
感恩的演讲稿
2014/05/06 职场文书
自主招生推荐信范文
2014/05/10 职场文书
社区精神文明建设汇报材料
2014/08/17 职场文书
五心教育心得体会
2014/09/04 职场文书
2014年大学生党员自我评议
2014/09/22 职场文书
不尊敬老师检讨书范文
2014/11/19 职场文书
2014年行政后勤工作总结
2014/12/06 职场文书