php模擬asp中的XmlHttpRequest實(shí)現(xiàn)http請(qǐng)求的代碼
更新時(shí)間:2011年03月24日 22:18:41 作者:
為了自己方便模擬asp里面的xmlhttp組件寫的phphttp請(qǐng)求類,基本的功能都實(shí)現(xiàn)了,支持gzip壓縮
類名 :HttpRequest($url="",$method="GET",$useSocket=0)
//$url為請(qǐng)求的地址;默認(rèn)請(qǐng)求方法為GET;$useSocket默認(rèn)為0,使用fsockopen方法,如果設(shè)置為1則使用socket_create方法
方法:
open($ip="",$port=-1) //打開同服務(wù)器的連接,默認(rèn)不用設(shè)置這兩個(gè)參數(shù)(一個(gè)同事在linux用的時(shí)候,請(qǐng)求的不是hostname解析的IP,因此加了這兩個(gè)參數(shù),以連接真實(shí)的服務(wù)器IP)
setTimeout($timeout=0) //設(shè)置獲取數(shù)據(jù)的超時(shí)時(shí)間,必須在send方法調(diào)用之前設(shè)置才有效,單位秒,默認(rèn)值0為不限制
setRequestHeader($key,$value="") //設(shè)置請(qǐng)求頭,必須在send方法調(diào)用之前設(shè)置才有效
removeRequestHeader($key,$value="") //移除指定鍵值的請(qǐng)求頭,必須在send方法調(diào)用之前調(diào)用才有效
send($data="") //發(fā)送數(shù)據(jù)$data到服務(wù)器
getResponseBody() //獲取服務(wù)器返回的文本
getAllResponseHeaders() //獲取服務(wù)器響應(yīng)的所有頭信息
getResponseHeader($key) //獲取服務(wù)器響應(yīng)的某個(gè)頭信息,例如Server,Set_Cookie等
屬性:
$url //要請(qǐng)求的url
$method //請(qǐng)求方法(POST/GET)
$port //請(qǐng)求的端口
$hostname //請(qǐng)求的主機(jī)名
$uri //url的文件部分
$protocol //請(qǐng)求協(xié)議(http)(包括本屬性的以上5個(gè)屬性均由程序自動(dòng)通過url分析)
$excption //異常信息
$_headers=array() //請(qǐng)求頭array("key"=>"value")
$_senddata //發(fā)送到服務(wù)器的數(shù)據(jù)
$status //返回的狀態(tài)碼
$statusText //狀態(tài)信息
$HttpProtocolVersion //服務(wù)器的HTTP協(xié)議版本
注意:
Host頭由程序自動(dòng)設(shè)置,當(dāng)用POST方法請(qǐng)求時(shí),Content-Length和Content-Type已被自動(dòng)設(shè)置。
支持gzip壓縮的頁(yè)面
php_XmlHttpRequest.rar
//$url為請(qǐng)求的地址;默認(rèn)請(qǐng)求方法為GET;$useSocket默認(rèn)為0,使用fsockopen方法,如果設(shè)置為1則使用socket_create方法
方法:
open($ip="",$port=-1) //打開同服務(wù)器的連接,默認(rèn)不用設(shè)置這兩個(gè)參數(shù)(一個(gè)同事在linux用的時(shí)候,請(qǐng)求的不是hostname解析的IP,因此加了這兩個(gè)參數(shù),以連接真實(shí)的服務(wù)器IP)
setTimeout($timeout=0) //設(shè)置獲取數(shù)據(jù)的超時(shí)時(shí)間,必須在send方法調(diào)用之前設(shè)置才有效,單位秒,默認(rèn)值0為不限制
setRequestHeader($key,$value="") //設(shè)置請(qǐng)求頭,必須在send方法調(diào)用之前設(shè)置才有效
removeRequestHeader($key,$value="") //移除指定鍵值的請(qǐng)求頭,必須在send方法調(diào)用之前調(diào)用才有效
send($data="") //發(fā)送數(shù)據(jù)$data到服務(wù)器
getResponseBody() //獲取服務(wù)器返回的文本
getAllResponseHeaders() //獲取服務(wù)器響應(yīng)的所有頭信息
getResponseHeader($key) //獲取服務(wù)器響應(yīng)的某個(gè)頭信息,例如Server,Set_Cookie等
屬性:
$url //要請(qǐng)求的url
$method //請(qǐng)求方法(POST/GET)
$port //請(qǐng)求的端口
$hostname //請(qǐng)求的主機(jī)名
$uri //url的文件部分
$protocol //請(qǐng)求協(xié)議(http)(包括本屬性的以上5個(gè)屬性均由程序自動(dòng)通過url分析)
$excption //異常信息
$_headers=array() //請(qǐng)求頭array("key"=>"value")
$_senddata //發(fā)送到服務(wù)器的數(shù)據(jù)
$status //返回的狀態(tài)碼
$statusText //狀態(tài)信息
$HttpProtocolVersion //服務(wù)器的HTTP協(xié)議版本
注意:
Host頭由程序自動(dòng)設(shè)置,當(dāng)用POST方法請(qǐng)求時(shí),Content-Length和Content-Type已被自動(dòng)設(shè)置。
支持gzip壓縮的頁(yè)面
php_XmlHttpRequest.rar
相關(guān)文章
學(xué)習(xí)php過程中的一些注意點(diǎn)的總結(jié)
在學(xué)習(xí)php的過程中會(huì)有一些細(xì)節(jié)是需要注意的,本文整理了一些比較實(shí)際的問題,希望對(duì)大家有所幫助2013-10-10php array 轉(zhuǎn)json及java 轉(zhuǎn)換 json數(shù)據(jù)格式操作示例
這篇文章主要介紹了php array 轉(zhuǎn)json及java 轉(zhuǎn)換 json數(shù)據(jù)格式操作,結(jié)合實(shí)例形式分析了PHP針對(duì)array數(shù)組轉(zhuǎn)json以及Java操作Map、List、對(duì)象與json格式轉(zhuǎn)換的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-11-11PHP實(shí)現(xiàn)遞歸無(wú)限級(jí)分類
這篇文章主要介紹了PHP實(shí)現(xiàn)遞歸無(wú)限級(jí)分類的方法,具有一定的參考價(jià)值,需要的朋友可以參考下2015-10-10PHP編程實(shí)現(xiàn)計(jì)算抽獎(jiǎng)概率算法完整實(shí)例
這篇文章主要介紹了PHP編程實(shí)現(xiàn)計(jì)算抽獎(jiǎng)概率算法,結(jié)合完整實(shí)例形式分析了php隨機(jī)數(shù)運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2017-08-08php基于DOMDocument操作頁(yè)面元素實(shí)例
這篇文章主要介紹了php基于DOMDocument操作頁(yè)面元素,結(jié)合實(shí)例形式分析了php使用DOMDocument進(jìn)行頁(yè)面元素獲取與屬性修改的相關(guān)操作技巧,需要的朋友可以參考下2023-06-06PHP使用in_array函數(shù)檢查數(shù)組中是否存在某個(gè)值
這篇文章主要介紹了PHP使用in_array函數(shù)檢查數(shù)組中是否存在某個(gè)值,較為詳細(xì)的分析了in_array函數(shù)的功能、定義及相關(guān)的使用技巧與注意事項(xiàng),具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03