解析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 相关文章推荐
用 PHP5 轻松解析 XML
Dec 04 PHP
php 过滤器实现代码
Aug 09 PHP
基于PHP输出缓存(output_buffering)的深入理解
Jun 13 PHP
PHP include任意文件或URL介绍
Apr 29 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(六)
Jun 23 PHP
PHP中使用匿名函数操作数据库的例子
Nov 17 PHP
PHP常用处理静态操作类
Apr 03 PHP
smarty内部日期函数html_select_date()用法实例分析
Jul 08 PHP
Yii框架表单模型和验证用法
May 20 PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
Oct 17 PHP
thinkphp5.1框架中容器(Container)和门面(Facade)的实现方法分析
Aug 05 PHP
PHP底层运行机制与工作原理详解
Jul 31 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获取数组中重复最多的元素的实现方法
2014/11/11 PHP
php 解决扫描二维码下载跳转问题
2017/01/13 PHP
PHP+MySQL实现模糊查询员工信息功能示例
2018/06/01 PHP
PHP常用函数之base64图片上传功能详解
2019/10/21 PHP
PHP设计模式之装饰器(装饰者)模式(Decorator)入门与应用详解
2019/12/13 PHP
Code:findPosX 和 findPosY
2006/12/20 Javascript
JavaScript 反科里化 this [译]
2012/09/20 Javascript
js中方法重载如何实现?以及函数的参数问题
2013/08/01 Javascript
JavaScript获取客户端计算机硬件及系统等信息的方法
2014/01/02 Javascript
JS获取select的value和text值的简单实例
2014/02/26 Javascript
一个简单的jquery进度条示例
2014/04/28 Javascript
javascript使用call调用微信API
2014/12/15 Javascript
使用AngularJS实现可伸缩的页面切换的方法
2015/06/19 Javascript
JS组件Bootstrap Table表格多行拖拽效果实现代码
2015/12/08 Javascript
浅谈addEventListener和attachEvent的区别
2016/07/14 Javascript
jquery+Jscex打造游戏力度条
2020/09/12 Javascript
基于KO+BootStrap+MVC实现的分页控件代码分享
2016/11/07 Javascript
js 数据存储和DOM编程
2017/02/09 Javascript
Webpack+Vue如何导入Jquery和Jquery的第三方插件
2017/02/20 Javascript
jQuery实现字体颜色渐变效果的方法
2017/03/29 jQuery
如何使用vuejs实现更好的Form validation?
2017/04/07 Javascript
vue使用监听实现全选反选功能
2018/07/06 Javascript
json字符串传到前台input的方法
2018/08/06 Javascript
vue如何进行动画的封装
2018/09/26 Javascript
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
2019/12/11 Javascript
jquery实现鼠标悬浮弹出气泡提示框
2020/12/23 jQuery
flask中主动抛出异常及统一异常处理代码示例
2018/01/18 Python
使用 Visual Studio Code(VSCode)搭建简单的Python+Django开发环境的方法步骤
2018/12/17 Python
深入浅析python3中的unicode和bytes问题
2019/07/03 Python
python中property属性的介绍及其应用详解
2019/08/29 Python
python实现简单贪吃蛇游戏
2020/09/29 Python
北欧最好的童装网上商店:Babyshop
2019/09/15 全球购物
护士自荐信范文
2013/12/15 职场文书
哈弗商学院毕业生求职信
2014/02/26 职场文书
公司中层干部的自我评价分享
2014/03/01 职场文书
一年级语文教学随笔
2015/08/14 职场文书