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 相关文章推荐
提问的智慧(2)
Oct 09 PHP
基于PHP选项与信息函数的使用详解
May 10 PHP
ThinkPHP3.1新特性之多层MVC的支持
Jun 19 PHP
PHP将HTML转换成文本的实现代码
Jan 21 PHP
PHP+shell实现多线程的方法
Jul 01 PHP
php实现分页显示
Nov 03 PHP
php写app接口并返回json数据的实例(分享)
May 20 PHP
php的常量和变量实例详解
Jun 27 PHP
PHP调用全国天气预报数据接口查询天气示例
Feb 20 PHP
PHP针对redis常用操作实例详解
Aug 17 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
Mar 26 PHP
PHP重载基础知识回顾
Sep 10 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结合jQuery插件ajaxFileUpload实现异步上传文件实例
2020/08/17 PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
2019/05/31 PHP
JQuery textlimit 显示用户输入的字符数 限制用户输入的字符数
2009/05/14 Javascript
XHTML下,JS浮动代码失效的问题
2009/11/12 Javascript
jQuery数组处理代码详解(含实例演示)
2012/02/03 Javascript
js获取页面传来参数的方法
2014/09/06 Javascript
Angularjs之filter过滤器(推荐)
2016/11/27 Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
2017/01/03 Javascript
JS数组返回去重后数据的方法解析
2017/01/03 Javascript
jquery Easyui Datagrid实现批量操作(编辑,删除,添加)
2017/02/20 Javascript
Node.js npm命令运行node.js脚本的方法
2018/10/10 Javascript
Angular事件之不同组件间传递数据的方法
2018/11/15 Javascript
python 中文乱码问题深入分析
2011/03/13 Python
python网络编程学习笔记(九):数据库客户端 DB-API
2014/06/09 Python
使用python实现tcp自动重连
2017/07/02 Python
Python实现购物系统(示例讲解)
2017/09/13 Python
Python使用正则表达式过滤或替换HTML标签的方法详解
2017/09/25 Python
pip安装py_zipkin时提示的SSL问题对应
2018/12/29 Python
Python笔记之观察者模式
2019/11/20 Python
python 二维矩阵转三维矩阵示例
2019/11/30 Python
python logging添加filter教程
2019/12/24 Python
Matplotlib绘制雷达图和三维图的示例代码
2020/01/07 Python
Tensorflow进行多维矩阵的拆分与拼接实例
2020/02/07 Python
如何利用pycharm进行代码更新比较
2020/11/04 Python
Python3爬虫RedisDump的安装步骤
2021/02/20 Python
英国领先的名牌服装折扣零售商:Brown Bag Clothing
2019/01/08 全球购物
师范生实习的个人自我鉴定
2013/10/20 职场文书
领导证婚人证婚词
2014/01/13 职场文书
大学生村官事迹材料
2014/01/21 职场文书
2014年化工厂工作总结
2014/11/25 职场文书
2015年实习单位评语
2015/03/25 职场文书
2015年项目经理工作总结
2015/04/30 职场文书
用电申请报告范文
2015/05/18 职场文书
Mybatis-plus在项目中的简单应用
2021/07/01 Java/Android
Python if else条件语句形式详解
2022/03/24 Python
 python中的元类metaclass详情
2022/05/30 Python