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
function.inc.php超越php
Dec 09 PHP
推荐一篇入门级的Class文章
Mar 19 PHP
sourcesafe管理phpproj文件的补充说明(downmoon)
Apr 11 PHP
php zip文件解压类代码
Dec 02 PHP
php数组合并的二种方法
Mar 21 PHP
php无限分类使用concat如何实现
Nov 05 PHP
WordPress的主题编写中获取头部模板和底部模板
Dec 28 PHP
对比分析php中Cookie与Session的异同
Feb 19 PHP
PHP接口并发测试的方法(推荐)
Dec 15 PHP
PHP实现打包zip并下载功能
Jun 12 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 URL地址获取函数代码(端口等) 推荐
2010/05/15 PHP
PHP实现文件下载断点续传详解
2014/10/15 PHP
php中ltrim()、rtrim()与trim()删除字符空格实例
2014/11/25 PHP
在网页中屏蔽快捷键
2006/09/06 Javascript
jQuery 位置函数offset,innerWidth,innerHeight,outerWidth,outerHeight,scrollTop,scrollLeft
2010/03/23 Javascript
基于jquery的仿百度搜索框效果代码
2011/04/11 Javascript
用nodejs访问ActiveX对象,以操作Access数据库为例。
2011/12/15 NodeJs
jquery 表格的增行删行实现思路
2013/03/21 Javascript
javascript定义变量时有var和没有var的区别探讨
2014/07/21 Javascript
Jquery插件easyUi实现表单验证示例
2015/12/15 Javascript
jQuery:unbind方法的使用详解
2017/08/14 jQuery
基于input动态模糊查询的实现方法
2017/12/12 Javascript
Javascript防止图片拉伸的自适应处理方法
2017/12/26 Javascript
OkHttp踩坑随笔为何 response.body().string() 只能调用一次
2018/01/08 Javascript
解决vue单页使用keep-alive页面返回不刷新的问题
2018/03/13 Javascript
[46:09]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第三场
2014/05/26 DOTA
Python中的startswith和endswith函数使用实例
2014/08/25 Python
Python动刷新抢12306火车票的代码(附源码)
2018/01/24 Python
python中的随机函数random的用法示例
2018/01/27 Python
Python简单计算给定某一年的某一天是星期几示例
2018/06/27 Python
Python分析彩票记录并预测中奖号码过程详解
2019/07/09 Python
Python 多线程,threading模块,创建子线程的两种方式示例
2019/09/29 Python
django实现将后台model对象转换成json对象并传递给前端jquery
2020/03/16 Python
如何写python的配置文件
2020/06/07 Python
Python3中对json格式数据的分析处理
2021/01/28 Python
纯CSS实现设置半个字符的样式
2014/07/03 HTML / CSS
罗德与泰勒百货官网:Lord & Taylor
2016/08/12 全球购物
德国家具在线:Fashion For Home
2017/03/11 全球购物
如何执行一个shell程序
2012/11/23 面试题
中学生励志演讲稿
2014/04/26 职场文书
卫校毕业生个人自我鉴定
2014/04/28 职场文书
优秀实习生主要事迹
2014/05/29 职场文书
2015年元宵节活动总结
2015/02/06 职场文书
新郎结婚保证书
2015/02/26 职场文书
2016党员学习作风建设心得体会
2016/01/21 职场文书
详解OpenCV曝光融合
2022/04/29 Python