十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
http的get/request可以從后臺發(fā)起一個http請求從而可以獲取遠程的資源
創(chuàng)新互聯(lián)公司專注于神木企業(yè)網(wǎng)站建設,成都響應式網(wǎng)站建設,電子商務商城網(wǎng)站建設。神木網(wǎng)站建設公司,為神木等地區(qū)提供建站服務。全流程定制開發(fā),專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務
,甚至是更新和同步遠程的資源,非常有用。
本質上request返回的是一個clientRequest類的實例
這個clientRequest的實例是一個可寫的流,如果你需要使用post請求上傳一個文件,
那么這個文件就會被寫入到clientRequest對象里面,
該怎么用的?
語法:http.request(options[,callback])
如果第一個參數(shù)是對象的話,就可以進行一系列的配置,來定制我們需要發(fā)出的請求的格式,
常見參數(shù)有:
host:java服務器域名或者是IP地址
hostName:host的別名
port:端口號 默認是80
localAddress:用于綁定到網(wǎng)絡連接的本地接口
method:一個指定 HTTP 請求方法的字符串。默認為 'GET'
path:請求的路徑。默認為 '/'。 應包括查詢字符串(如有的話)。如 '/index.html?page=12'
headers :一個包含請求頭的對象
auth:用于計算認證頭的基本認證,一般是user跟上password
agent :控制 Agent 的行為
keepAlive:保持資源周圍的套接字在未來能被繼續(xù)用于其他請求,默認是false
來實現(xiàn)一個評論的提交功能。。。
重點參考:Request Headers
其次是:Response,返回的一般是json數(shù)據(jù)
我們需要把Request Headers里的內容拷出來
這一些參數(shù)對于后臺服務器做解析判斷你是登錄的并且是真實用戶,那這個評論是合法的,
var http = require('http') //可以把一個對象序列化 var querystring = require('querystring') var postData = querystring.stringify({ 'content':'正在準備第二季', '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ù)的時候是已流的方式發(fā)送上來的,所以會 //觸發(fā)一個on.data事件 res.on('data',function(chunk){ console.log(Buffer.isBuffer(chunk)) console.log(typeof chunk) }) //網(wǎng)絡結束 res.on('end',function(){ console.log('評論完畢') }) }) req.on('error',function(e){ console.log('Error:'+e.message) }) //write req.write(postData) //end req.end()
運行結果如下:
效果圖如下(要手動刷新頁面,因為評論是在本地進行的,不會進行ajax請求):
get方法,大多數(shù)情況下我們只是提交一個請求用來查詢,其實并沒有具體的
數(shù)據(jù)提交,這個時候就會用get方法;和request方法區(qū)別是:
method設置為get同時會自動調用end方法