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的类 功能齐全的发送邮件类
Oct 09 PHP
php 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
Nov 14 PHP
用Zend Encode编写开发PHP程序
Feb 21 PHP
php数组函数序列之rsort() - 对数组的元素值进行降序排序
Nov 02 PHP
PHP时间格式控制符对照表分享
Jul 23 PHP
php操作MongoDB基础教程(连接、新增、修改、删除、查询)
Mar 25 PHP
php基于base64解码图片与加密图片还原实例
Nov 03 PHP
PHP中Header使用的HTTP协议及常用方法小结
Nov 04 PHP
php文件上传 你真的掌握了吗
Nov 28 PHP
使用PHP开发留言板功能
Nov 19 PHP
PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码
Dec 01 PHP
宝塔面板在NGINX环境中TP5.1如何运行?
Mar 09 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 使用post,get的一种简洁方式
2010/04/25 PHP
微信公众号开发之文本消息自动回复php代码
2016/08/08 PHP
php实现文件上传及头像预览功能
2017/01/15 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
浅谈PHP SHA1withRSA加密生成签名及验签
2019/03/18 PHP
js left,right,mid函数
2008/06/10 Javascript
jquery select选中的一个小问题
2009/10/11 Javascript
javascript中parentNode,childNodes,children的应用详解
2013/12/17 Javascript
用jquery等比例控制图片宽高的具体实现
2014/01/28 Javascript
JavaScript Serializer序列化时间处理示例
2014/07/31 Javascript
Jquery修改页面标题title其它JS失效的解决方法
2014/10/31 Javascript
AngularJS内置指令
2015/02/04 Javascript
JavaScript检测上传文件大小的方法
2015/07/22 Javascript
使用jQuery Ajax 请求webservice来实现更简练的Ajax
2016/08/04 Javascript
javascript 中的事件委托详解
2016/10/25 Javascript
js操作浏览器的参数方法
2017/01/21 Javascript
js实现移动端微信页面禁止字体放大
2017/02/16 Javascript
vue.js选中动态绑定的radio的指定项
2017/06/02 Javascript
深入探究node之Transform
2017/07/20 Javascript
node使用Koa2搭建web项目的方法
2017/10/17 Javascript
一文快速详解前端框架 Vue 最强大的功能
2019/05/21 Javascript
django中使用vue.js的要点总结
2019/07/07 Javascript
使用优化器来提升Python程序的执行效率的教程
2015/04/02 Python
基于wxpython开发的简单gui计算器实例
2015/05/30 Python
快速解决PyCharm无法引用matplotlib的问题
2018/05/24 Python
使用python对文件中的数值进行累加的实例
2018/11/28 Python
Python matplotlib生成图片背景透明的示例代码
2019/08/30 Python
django框架使用views.py的函数对表进行增删改查内容操作详解【models.py中表的创建、views.py中函数的使用,基于对象的跨表查询】
2019/12/12 Python
Python cookie的保存与读取、SSL讲解
2020/02/17 Python
关于keras中keras.layers.merge的用法说明
2020/05/23 Python
浅谈h5自定义audio(问题及解决)
2016/08/19 HTML / CSS
浪费资源的建议书
2014/03/12 职场文书
学习雷锋精神活动总结
2015/02/06 职场文书
Memcached介绍及php-memcache扩展安装
2021/04/01 PHP
vite+vue3.0+ts+element-plus快速搭建项目的实现
2021/06/24 Vue.js
CSS作用域(样式分割)的使用汇总
2021/11/07 HTML / CSS