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字符转义相关函数小结(php下的转义字符串)
Apr 12 PHP
DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
Mar 27 PHP
PHP 全角转半角实现代码
May 16 PHP
一个简单的网页密码登陆php代码
Jul 17 PHP
免费手机号码归属地API查询接口和PHP使用实例分享
Apr 10 PHP
CI框架在CLI下执行占用内存过大问题的解决方法
Jun 17 PHP
php图片的二进制转换实现方法
Dec 15 PHP
PHP贪婪算法解决0-1背包问题实例分析
Mar 23 PHP
非常重要的php正则表达式详解
Jan 04 PHP
非常有用的9个PHP代码片段
Apr 06 PHP
thinkPHP5框架导出Excel文件简单操作示例
Aug 03 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代码
2007/03/08 PHP
在PHP中检查PHP文件是否有语法错误的方法
2009/12/23 PHP
理解php原理的opcodes(操作码)
2010/10/26 PHP
php引用地址改变变量值的问题
2012/03/23 PHP
PHP获取网页所有连接的方法(附demo源码下载)
2016/03/30 PHP
php文件系统处理方法小结
2016/05/23 PHP
JavaScript 小型打飞机游戏实现原理说明
2010/10/28 Javascript
也说JavaScript中String类的replace函数
2011/09/22 Javascript
jquery 单引号和双引号的区别及使用注意
2013/07/31 Javascript
一个简单的jQuery计算器实现了连续计算功能
2014/07/21 Javascript
Linux下为Node.js程序配置MySQL或Oracle数据库的方法
2016/03/19 Javascript
jQuery 实现评论等级好评差评特效
2016/05/06 Javascript
Bootstrap路径导航与分页学习使用
2017/02/08 Javascript
微信小程序 连续旋转动画(this.animation.rotate)详解
2017/04/07 Javascript
jquery实现图片放大点击切换
2017/06/06 jQuery
vue中引入第三方字体文件的方法示例
2018/12/17 Javascript
在vue项目中引用Antv G2,以饼图为例讲解
2020/10/28 Javascript
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
2021/01/05 Vue.js
[05:14]辉夜杯主赛事第二日 RECAP精彩回顾
2015/12/27 DOTA
[01:39:04]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第二场 2月1日
2021/03/11 DOTA
在Python中使用全局日志时需要注意的问题
2015/05/06 Python
Python入门之三角函数atan2()函数详解
2017/11/08 Python
Python查看微信撤回消息代码
2018/06/07 Python
python设定并获取socket超时时间的方法
2019/01/12 Python
pandas中DataFrame修改index、columns名的方法示例
2019/08/02 Python
如何分离django中的媒体、静态文件和网页
2019/11/12 Python
HTML5 canvas 瀑布流文字效果的示例代码
2018/01/31 HTML / CSS
Larsson & Jennings官网:现代瑞士钟表匠
2018/03/20 全球购物
北美Newegg打造的全球尖货海购平台:tt海购
2018/09/28 全球购物
美国踏板车和轻便摩托车销售网站:Mega Motor Madness
2020/02/26 全球购物
法学专业本科生自荐信范文
2013/12/17 职场文书
餐饮业会计岗位职责
2013/12/19 职场文书
网络程序员自荐信
2014/01/25 职场文书
班组长岗位职责
2014/03/03 职场文书
我的大学四年规划书范文2014
2014/09/26 职场文书
纪委立案决定书
2015/06/24 职场文书