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代码
Sep 10 PHP
PHP集成FCK的函数代码
Sep 27 PHP
phpmyadmin MySQL 加密配置方法
Jul 05 PHP
php文档更新介绍
Jul 22 PHP
PHP正则表达式之定界符和原子介绍
Oct 05 PHP
一漂亮的PHP图片验证码实例
Mar 21 PHP
PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
Sep 30 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
Mar 01 PHP
Joomla数据库操作之JFactory::getDBO用法
May 05 PHP
php根据用户名和手机号查询是否存在手机号码
Feb 16 PHP
浅谈php常用的7大框架的优缺点
Jul 20 PHP
php实例化对象的实例方法
Nov 17 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多线程抓取网页实现代码
2010/07/22 PHP
PHP循环结构实例讲解
2014/02/10 PHP
jquery的ajax从纯真网(cz88.net)获取IP地址对应地区名
2009/12/02 Javascript
JavaScript中几种常见排序算法小结
2011/02/22 Javascript
Chrome Form多次提交表单问题的解决方法
2011/05/09 Javascript
javascript 进阶篇2 CSS XML学习
2012/03/14 Javascript
ExtJS4给Combobox设置列表中的默认值示例
2014/05/02 Javascript
jQuery针对各类元素操作基础教程
2014/08/29 Javascript
node.js入门实例helloworld详解
2015/12/23 Javascript
深入理解关于javascript中apply()和call()方法的区别
2016/04/12 Javascript
JavaScript的模块化开发框架Sea.js上手指南
2016/05/12 Javascript
jQueryUI DatePicker 添加时分秒
2016/06/04 Javascript
JS导出PDF插件的方法(支持中文、图片使用路径)
2016/07/12 Javascript
提高Web性能的前端优化技巧总结
2017/02/27 Javascript
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
2017/04/10 jQuery
vue.js的手脚架vue-cli项目搭建的步骤
2017/08/30 Javascript
swiper动态改变滑动内容的实现方法
2018/01/17 Javascript
关于vue中 $emit的用法详解
2018/04/12 Javascript
小程序实现左滑删除的效果的实例代码
2020/10/19 Javascript
[01:11:48]Fnatic vs IG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
朴素贝叶斯算法的python实现方法
2014/11/18 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
2018/05/29 Python
查看python下OpenCV版本的方法
2018/08/03 Python
python代码 输入数字使其反向输出的方法
2018/12/22 Python
使用python Telnet远程登录执行程序的方法
2019/01/26 Python
Appium+python自动化怎么查看程序所占端口号和IP
2019/06/14 Python
Python垃圾回收机制三种实现方法
2020/04/27 Python
CSS3教程(2):网页边框半径和网页圆角
2009/04/02 HTML / CSS
端口镜像是怎么实现的
2014/03/25 面试题
模特职业生涯规划范文
2014/02/26 职场文书
幼儿园安全生产月活动总结
2014/07/05 职场文书
班级团队活动方案
2014/08/14 职场文书
出生证明范本
2015/06/15 职场文书
学术会议领导致辞
2015/07/29 职场文书
在CSS中使用when/else的方法
2022/01/18 HTML / CSS
小程序自定义轮播图圆点组件
2022/06/25 Javascript