本篇文章主要介绍php模拟post请求的三种常见用法,感兴趣的朋友参考下,希望对大家有所帮助。

本文实例讲述了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 模拟post请求,php模拟post请求的三种常见用法相关推荐

  1. java端模拟http的get、post请求(转)

    Servlet是SUN指定的Java服务器端编程规范,用以处理来自客户端的请求,处理并做出响应的一套基础API.Servlet是运行在Servlet容器中的Java小程序,容器运行在服务器端,服务器侦 ...

  2. 【转】使用C#发送Http 请求实现模拟登陆(以博客园为例)

    [转]使用C#发送Http 请求实现模拟登陆(以博客园为例) 模拟登陆的原理很简单,就是发送一个Http 请求服务器获得响应,然后客户端获取到cookie即可实现模拟登陆,比如一些抢票软件的原理无非也 ...

  3. vue 接口数据排序_Vue 使用 axios 请求 mock 模拟接口的数据

    安装使用 axios # axios 安装 使用npm install axios --save# main.js 引入 axiosimport axios from 'axios'Vue.proto ...

  4. C#模拟http 发送post或get请求

    C#模拟http 发送post或get请求 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2 ...

  5. 爬虫实战学习笔记_2 网络请求urllib模块+设置请求头+Cookie+模拟登陆

    1 urllib模块 1.1 urllib模块简介 Python3中将urib与urllib2模块的功能组合,并且命名为urllib.Python3中的urllib模块中包含多个功能的子模块,具体内容 ...

  6. 使用C#发送Http 请求实现模拟登陆(以博客园为例)

    使用C#发送Http 请求实现模拟登陆(以博客园为例) 原文:使用C#发送Http 请求实现模拟登陆(以博客园为例) 模拟登陆的原理很简单,就是发送一个Http 请求服务器获得响应,然后客户端获取到c ...

  7. C#开发笔记之18-如何用C#模拟(传统方法)发送Post请求或Get请求?

    本文由 比特飞 原创发布,欢迎大家踊跃转载. 转载请注明本文地址:C#开发笔记之18-如何用C#模拟(传统方法)发送Post请求或Get请求? | .Net中文网. C#开发笔记概述 概述 HTTP ...

  8. Java模拟HTTP的Get和Post请求(增强)

    Java模拟HTTP的Get和Post请求(增强) 在之前,写了篇Java模拟HTTP的Get和Post请求的文章,这篇文章起源与和一个朋友砍飞信诈骗网站的问题,于是动用了Apache的comment ...

  9. cURL(wget)—— 测试 RESTful 接口及模拟 GET/POST/PUT/DELETE/OPTIONS 请求

    cURL 是一个简单的 http 命令行工具.与最优秀的 Unix 工具一样,在设计之时,cURL 是个小型程序,功能十分专一,而且是故意为之,仅用于访问 http 服务器.(在 Linux 中,可以 ...

最新文章

  1. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(LabelFrame/Checkbutton/Radiobutton)
  2. 拼图项目的动机和目标
  3. 数字非压缩光端机的选购原则
  4. 点在多边形内 java_判断点在多边形内部的方法(Java版)
  5. GC.Collect
  6. matlab中遗传算法代沟,谢菲尔德大学的MATLAB遗传算法
  7. spss26没有典型相关性分析_如何在SPSS中实现典型相关分析
  8. 【Android】组件安全
  9. QString 转toLatin1 toUtf8 toLocal8Bit区别
  10. 数据系统架构-5.实时离线统计系统
  11. elk替代_记一次关于elk收集的日志中把手机号码用***代替遇到的问题以及解决
  12. Linux命令——系统管理
  13. 成功解决:1136 - Column count doesn‘t match value count at row 1
  14. BW顾问进阶:BW服务器访问文件数据源,处理链调度抽取方案
  15. Fluke 1550C、FLUKE 1555高压绝缘电阻测试仪
  16. 高手处理事情的十二个方法,普通人学到三招就很厉害了
  17. SQL之统计某一状态数量
  18. Springboot+vue项目毕业生信息招聘平台
  19. watch和watchEffect
  20. Drupal 主题系统( Drupal theme)(1)

热门文章

  1. K8s系列之:Cronjob定时任务
  2. 持续成功的研发,【把研发当作投资来管理】不能只成为响亮的口号
  3. APU、CPU、GPU、SoC傻傻分不清楚?
  4. 【C】isdigit()函数使用说明
  5. Java OpenCV 图像处理04.0 图像形状与文字绘制
  6. 换位思考:爱情要不要门当户对?
  7. 使用WNMP在windows环境下搭建
  8. Android单元测试系列(2)-Junit
  9. Django项目出现: 禁止访问(403),CSRF验证失败,相应中断
  10. CentOS 安装 SS5 配置启动