http的get/request可以從后臺發(fā)起一個http請求從而可以獲取遠(yuǎn)程的資源
創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),西秀網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:西秀等地區(qū)。西秀做網(wǎng)站價(jià)格咨詢:18982081108,甚至是更新和同步遠(yuǎn)程的資源,非常有用。
本質(zhì)上request返回的是一個clientRequest類的實(shí)例
這個clientRequest的實(shí)例是一個可寫的流,如果你需要使用post請求上傳一個文件,
那么這個文件就會被寫入到clientRequest對象里面,
該怎么用的?
語法:http.request(options[,callback])
如果第一個參數(shù)是對象的話,就可以進(jìn)行一系列的配置,來定制我們需要發(fā)出的請求的格式,
常見參數(shù)有:
host:java服務(wù)器域名或者是IP地址
hostName:host的別名
port:端口號 默認(rèn)是80
localAddress:用于綁定到網(wǎng)絡(luò)連接的本地接口
method:一個指定 HTTP 請求方法的字符串。默認(rèn)為 'GET'
path:請求的路徑。默認(rèn)為 '/'。 應(yīng)包括查詢字符串(如有的話)。如 '/index.html?page=12'
headers :一個包含請求頭的對象
auth:用于計(jì)算認(rèn)證頭的基本認(rèn)證,一般是user跟上password
agent :控制 Agent 的行為
keepAlive:保持資源周圍的套接字在未來能被繼續(xù)用于其他請求,默認(rèn)是false
來實(shí)現(xiàn)一個評論的提交功能。。。
重點(diǎn)參考:Request Headers
其次是:Response,返回的一般是json數(shù)據(jù)
我們需要把Request Headers里的內(nèi)容拷出來
這一些參數(shù)對于后臺服務(wù)器做解析判斷你是登錄的并且是真實(shí)用戶,那這個評論是合法的,
var http = require('http') //可以把一個對象序列化 var querystring = require('querystring') var postData = querystring.stringify({ 'content':'正在準(zhǔn)備第二季', 'cid':348 }) var options = { hostname:'www.imooc.com', port:80, path:'/course/docomment', method:'POST', headers:{ 'Accept':'application/json, text/javascript, */*; q=0.01', 'Accept-Encoding':'gzip, deflate', 'Accept-Language':'zh-CN,zh;q=0.8', 'Connection':'keep-alive', //這里的長度修改更改 'Content-Length':postData.length, 'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8', 'Cookie':'imooc_uuid=80a28286-15ef-4fe7-a10f-341b99d11357; imooc_isnew_ct=1486736221; bdshare_firstime=1486736247756; AJSTAT_ok_times=18; PHPSESSID=mjhe6ik85emsonjhsn7v3t9mp4; loginstate=1; apsid=QzN2U2OGVhM2I0NGE0MGNmNmNjYmEzN2Q5YTA0M2UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjkwMDcxNgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4NDU3NzkyNjVAcXEuY29tAAAAAAAAAAAAAAAAAAAAAGUwZmFlMDJiYjg4YTBkMjcxMmE5YjcyYzJlZjIxNzhhb0HWWG9B1lg%3DOW; last_login_username=845779265%40qq.com; Hm_lvt_f0cfcccd7b1393990c78efdeebff3968=1490406351,1490435767,1490435811,1490450848; Hm_lpvt_f0cfcccd7b1393990c78efdeebff3968=1490490428; IMCDNS=0; imooc_isnew=2; cvde=58d5080dadc94-140', 'Host':'www.imooc.com', 'Origin':'http://www.imooc.com', 'Referer':'http://www.imooc.com/comment/348', 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36', 'X-Requested-With':'XMLHttpRequest' } } var req = http.request(options,function(res){ console.log('Status:'+res.statusCode) console.log('headers:'+JSON.stringify(res.headers)) //我們在接收數(shù)據(jù)的時(shí)候是已流的方式發(fā)送上來的,所以會 //觸發(fā)一個on.data事件 res.on('data',function(chunk){ console.log(Buffer.isBuffer(chunk)) console.log(typeof chunk) }) //網(wǎng)絡(luò)結(jié)束 res.on('end',function(){ console.log('評論完畢') }) }) req.on('error',function(e){ console.log('Error:'+e.message) }) //write req.write(postData) //end req.end()
運(yùn)行結(jié)果如下:
效果圖如下(要手動刷新頁面,因?yàn)樵u論是在本地進(jìn)行的,不會進(jìn)行ajax請求):
get方法,大多數(shù)情況下我們只是提交一個請求用來查詢,其實(shí)并沒有具體的
數(shù)據(jù)提交,這個時(shí)候就會用get方法;和request方法區(qū)別是:
method設(shè)置為get同時(shí)會自動調(diào)用end方法
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。