解析curl提交GET,POST,Cookie的简单方法


Posted in PHP onJune 29, 2013
<?php
$get_data = array (
    "get1"=> "get1",
    "get2" => "get2",
    "get3" => "get3"
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://test.test.com/test.php?'.http_build_query($get_data));
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11');
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
$post_data = array (
    "p1" => "test1",
    "p2" => "test2",
    "p3" => "test3"
);
curl_setopt($curl, CURLOPT_POST, true);
//["CONTENT_TYPE"]=> string(70) "multipart/form-data; boundary=------077a996f5afe"
//要发送文件,在文件名前面加上@前缀并使用完整路径。
//使用数组提供post数据时,CURL组件大概是为了兼容@filename这种上传文件的写法,默认把content_type设为了multipart/form-data。
//虽然对于大多数web服务器并没有影响,但是还是有少部分服务器不兼容。
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
//["CONTENT_TYPE"]=> string(33) "application/x-www-form-urlencoded"
//curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post_data));
//在没有需要上传文件的情况下,尽量对post提交的数据进行http_build_query,然后发送出去,能实现更好的兼容性,更小的请求数据包。
$cookies = array(
 'c1'=>'v1',
 'c2'=>'v2',
 'c3'=>'v3',
);
$cookies_string = '';
foreach($cookies as $name=>$value){ 
 $cookies_string .= $name.'='.$value.';';
}
curl_setopt($curl, CURLOPT_COOKIE, $cookies_string);
$result = curl_exec($curl);
curl_close($curl);
var_dump($result);
exit;
PHP 相关文章推荐
PHP与MySQL开发中页面乱码的产生与解决
Mar 27 PHP
php实现的遍历文件夹下所有文件,编辑删除
Jan 05 PHP
深入理解PHP原理之异常机制
Aug 21 PHP
apache php模块整合操作指南
Nov 16 PHP
领悟php接口中interface存在的意义
Jun 27 PHP
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
Sep 12 PHP
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
Jan 20 PHP
PHP+AJAX实现投票功能的方法
Sep 28 PHP
Ubuntu server 11.04安装memcache及php使用memcache来存储session的方法
May 31 PHP
浅谈PHP中静态方法和非静态方法的相互调用
Oct 04 PHP
安装docker和docker-compose实例详解
Jul 30 PHP
laravel框架中控制器的创建和使用方法分析
Nov 23 PHP
解析PHP的session过期设置
Jun 29 #PHP
php selectradio和checkbox默认选择的实现方法详解
Jun 29 #PHP
php小经验:解析preg_match与preg_match_all 函数
Jun 29 #PHP
解析php session_set_save_handler 函数的用法(mysql)
Jun 29 #PHP
使用PHP获取当前url路径的函数以及服务器变量
Jun 29 #PHP
如何使用PHP实现javascript的escape和unescape函数
Jun 29 #PHP
解析php中的escape函数
Jun 29 #PHP
You might like
PHP日期处理函数 整型日期格式
2011/01/12 PHP
利用php绘制饼状图的实现代码
2013/06/07 PHP
深入php多态的实现详解
2013/06/09 PHP
使用PHP计算两个路径的相对路径
2013/06/14 PHP
php实现图片添加水印功能
2014/02/13 PHP
浅析ThinkPHP的模板输出功能
2014/07/01 PHP
PHP中使用glob函数实现一句话删除某个目录下的所有文件
2014/07/22 PHP
ThinkPHP发送邮件示例代码
2016/10/08 PHP
PHP Socket网络操作类定义与用法示例
2017/08/30 PHP
PHP+MySQL实现消息队列的方法分析
2018/05/09 PHP
几个高效,简洁的字符处理函数
2007/04/12 Javascript
jQuery 性能优化指南(2)
2009/05/21 Javascript
jQuery each()小议
2010/03/18 Javascript
Javascript下判断是否为闰年的Datetime包
2010/10/26 Javascript
javascript针对DOM的应用实例(一)
2012/04/15 Javascript
jQuery的显示和隐藏方法与css隐藏的样式对比
2013/10/18 Javascript
js操作cookie保存浏览记录的方法
2015/12/25 Javascript
浅析$.getJSON异步请求和同步请求
2016/06/06 Javascript
微信小程序 MD5的方法详解及实例代码
2017/03/10 Javascript
解决OneThink中无法异步提交kindeditor文本框中修改后的内容方法
2017/05/05 Javascript
JS中使用gulp实现压缩文件及浏览器热加载功能
2017/07/12 Javascript
浅谈Vue2.0中v-for迭代语法的变化(key、index)
2018/03/06 Javascript
jQuery实现鼠标移入移出事件切换功能示例
2018/09/06 jQuery
微信小程序时间轴实现方法示例
2019/01/14 Javascript
vue prop属性传值与传引用示例
2019/11/13 Javascript
[00:12]2018DOTA2亚洲邀请赛 Sccc亮相SOLO赛,今年他又会有什么样的战绩?
2018/04/06 DOTA
[59:30]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
更改Python命令行交互提示符的方法
2015/01/14 Python
python 第三方库的安装及pip的使用详解
2017/05/11 Python
python画环形图的方法
2020/03/25 Python
django中嵌套的try-except实例
2020/05/21 Python
python爬虫容易学吗
2020/06/02 Python
解释下列WebService名词:WSDL、SOAP、UDDI
2012/06/22 面试题
创新型城市实施方案
2014/03/06 职场文书
组工干部对照检查材料
2014/08/25 职场文书
爱牙日活动总结
2014/08/29 职场文书