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

发布时间:2020-02-07编辑:脚本学堂
php模拟asp中的XmlHttpRequest实现http请求

为方便模拟asp里面的xmlhttp组件写的phphttp请求类,支持gzip压缩。

类名 :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压缩的页面。
点这里下载完整代码。