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 相关文章推荐
The specified CGI application misbehaved by not returning a complete set of HTTP headers
Mar 31 PHP
PHP里的中文变量说明
Jul 23 PHP
基于php 随机数的深入理解
Jun 05 PHP
PHP中使用数组指针函数操作数组示例
Nov 19 PHP
php计算数组相同值出现次数的代码(array_count_values)
Jan 20 PHP
php获取远程文件大小
Oct 20 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
Feb 08 PHP
php 二维数组快速排序算法的实现代码
Oct 17 PHP
php读取本地json文件的实例
Mar 07 PHP
让Laravel API永远返回JSON格式响应的方法示例
Sep 05 PHP
tp5框架前台无限极导航菜单类实现方法分析
Mar 29 PHP
thinkphp5 redis缓存新增方法实例讲解
Mar 24 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中使用TCPDF生成PDF文档实例
2014/07/01 PHP
php中实现精确设置session过期时间的方法
2014/07/17 PHP
YII框架实现自定义第三方扩展操作示例
2019/04/26 PHP
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
jquery下异步提交表单 异步跨域提交表单
2010/11/17 Javascript
合并table相同单元格的jquery插件分享(很精简)
2011/06/20 Javascript
借助script进行Http跨域请求:JSONP实现原理及代码
2013/03/19 Javascript
jQuery选择器简明总结(含用法实例,一目了然)
2014/04/25 Javascript
原生js实现移动开发轮播图、相册滑动特效
2015/04/17 Javascript
JavaScript实现的伸展收缩型菜单代码
2015/10/14 Javascript
BootStrap 实现各种样式的进度条效果
2016/12/07 Javascript
Bootstrap3 多选和单选框(checkbox)
2016/12/29 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
2017/05/07 Javascript
JavaScript创建对象_动力节点Java学院整理
2017/06/27 Javascript
基于JS实现移动端左滑删除功能
2017/07/28 Javascript
BootStrap入门学习第一篇
2017/08/28 Javascript
详解如何快速配置webpack多入口脚手架
2018/12/28 Javascript
详解VUE Element-UI多级菜单动态渲染的组件
2019/04/25 Javascript
Jquery Datatables的使用详解
2020/01/30 jQuery
[01:32]DOTA2次级联赛——首支职业女子战队选拔赛全记录
2014/10/23 DOTA
Python如何实现MySQL实例初始化详解
2017/11/06 Python
linux下python使用sendmail发送邮件
2018/05/22 Python
Django框架自定义session处理操作示例
2019/05/27 Python
你还在@微信官方?聊聊Python生成你想要的微信头像
2019/09/25 Python
REN Clean Skincare官网:英国本土有机护肤品牌
2019/02/23 全球购物
StubHub中国:购买和出售全球活动门票
2020/01/01 全球购物
星空联盟C# .net笔试题
2014/12/05 面试题
学校安全工作制度
2014/01/19 职场文书
剪彩仪式主持词
2014/03/19 职场文书
就业协议书的作用
2014/04/11 职场文书
学生会干部自我鉴定2014
2014/09/18 职场文书
中班下学期个人工作总结
2015/02/12 职场文书
因个人原因离职的辞职信范文
2015/05/12 职场文书
2016年大学生暑期社会实践活动总结
2016/04/06 职场文书
go类型转换及与C的类型转换方式
2021/05/05 Golang
使用Python通过企业微信应用给企业成员发消息
2022/04/18 Python