php模拟asp中的XmlHttpRequest实现http请求的代码


Posted in PHP onMarch 24, 2011

类名 :HttpRequest($url="",$method="GET",$useSocket=0)
//$url为请求的地址;默认请求方法为GET;$useSocket默认为0,使用fsockopen方法,如果设置为1则使用socket_create方法

方法:
open($ip="",$port=-1) //打开同服务器的连接,默认不用设置这两个参数(一个同事在linux用的时候,请求的不是hostname解析的IP,因此加了这两个参数,以连接真实的服务器IP)
setTimeout($timeout=0) //设置获取数据的超时时间,必须在send方法调用之前设置才有效,单位秒,默认值0为不限制
setRequestHeader($key,$value="") //设置请求头,必须在send方法调用之前设置才有效
removeRequestHeader($key,$value="") //移除指定键值的请求头,必须在send方法调用之前调用才有效
send($data="") //发送数据$data到服务器
getResponseBody() //获取服务器返回的文本
getAllResponseHeaders() //获取服务器响应的所有头信息
getResponseHeader($key) //获取服务器响应的某个头信息,例如Server,Set_Cookie等

属性:
$url //要请求的url
$method //请求方法(POST/GET)
$port //请求的端口
$hostname //请求的主机名
$uri //url的文件部分
$protocol //请求协议(http)(包括本属性的以上5个属性均由程序自动通过url分析)
$excption //异常信息
$_headers=array() //请求头array("key"=>"value")
$_senddata //发送到服务器的数据
$status //返回的状态码
$statusText //状态信息
$HttpProtocolVersion //服务器的HTTP协议版本

注意:
Host头由程序自动设置,当用POST方法请求时,Content-Length和Content-Type已被自动设置。
支持gzip压缩的页面
php_XmlHttpRequest.rar

PHP 相关文章推荐
php5.2.0内存管理改进
Jan 22 PHP
php不用正则采集速度探究总结
Mar 24 PHP
php 获取本机外网/公网IP的代码
May 09 PHP
深入Apache与Nginx的优缺点比较详解
Jun 17 PHP
PHP callback函数使用方法和注意事项
Jan 23 PHP
PHP中的traits简单使用实例
May 13 PHP
php实现window平台的checkdnsrr函数
May 27 PHP
详解PHP错误日志的获取方法
Jul 20 PHP
php使用CutyCapt实现网页截图保存的方法
Oct 03 PHP
php使用正则表达式去掉html中的注释方法
Nov 03 PHP
thinkPHP框架对接支付宝即时到账接口回调操作示例
Nov 14 PHP
如何在PHP中生成随机数
Jun 04 PHP
php邮件发送,php发送邮件的类
Mar 24 #PHP
php 数组排序 array_multisort与uasort的区别
Mar 24 #PHP
一个基于PDO的数据库操作类
Mar 24 #PHP
Zend Studio (eclipse)使用速度优化方法
Mar 23 #PHP
常见的PHP五种设计模式小结
Mar 23 #PHP
PHP中MVC模式的模板引擎开发经验分享
Mar 23 #PHP
PHP面向接口编程 耦合设计模式 简单范例
Mar 23 #PHP
You might like
PHP 源代码压缩小工具
2009/12/22 PHP
PHP读取数据库并按照中文名称进行排序实现代码
2013/01/29 PHP
php实例分享之mysql数据备份
2014/05/19 PHP
CodeIgniter配置之routes.php用法实例分析
2016/01/19 PHP
php简单复制文件的方法
2016/05/09 PHP
php封装的mysqli类完整实例
2016/10/18 PHP
Javascript 同时提交多个Web表单的方法
2009/02/19 Javascript
js 关于=+与+=日期函数使用说明(赋值运算符)
2011/11/15 Javascript
c#程序员对TypeScript的认识过程
2015/06/19 Javascript
JavaScript基于ajax编辑信息用法实例
2015/07/15 Javascript
JavaScript实现清空(重置)文件类型INPUT元素值的方法
2016/11/17 Javascript
完美解决JS文件页面加载时的阻塞问题
2016/12/18 Javascript
javascript数据结构中栈的应用之符号平衡问题
2017/04/11 Javascript
VUE中v-model和v-for指令详解
2017/06/23 Javascript
Angular 向组件传递模板的两种方法
2018/02/23 Javascript
js replace 全局替换的操作方法
2018/06/12 Javascript
vue中,在本地缓存中读写数据的方法
2018/09/21 Javascript
微信小程序template模板与component组件的区别和使用详解
2019/05/22 Javascript
python复制文件的方法实例详解
2015/05/22 Python
python万年历实现代码 含运行结果
2017/05/20 Python
python 实现上传图片并预览的3种方法(推荐)
2017/07/14 Python
Python函数any()和all()的用法及区别介绍
2018/09/14 Python
浅谈Django2.0 加xadmin踩的坑
2019/11/15 Python
Pytoch之torchvision.transforms图像变换实例
2019/12/30 Python
后端开发使用pycharm的技巧(推荐)
2020/03/27 Python
python datetime处理时间小结
2020/04/16 Python
CSS3制作皮卡丘动画壁纸的示例
2020/11/02 HTML / CSS
水果花束:Fruit Bouquets
2017/12/20 全球购物
澳大利亚在线奢侈品时尚零售平台:Azura Runway
2021/01/13 全球购物
公职人员索取回扣检举信
2014/04/04 职场文书
浪漫婚礼主题活动策划方案
2014/09/15 职场文书
工作时间证明
2015/06/15 职场文书
读《教育心理学》心得体会
2016/01/22 职场文书
2016年秋季趣味运动会开幕词
2016/03/04 职场文书
pycharm2021激活码使用教程(永久激活亲测可用)
2021/03/30 Python
redis通过6379端口无法连接服务器(redis-server.exe闪退)
2021/05/08 Redis