W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
http.Client 的request()方法建立并返回http.ClientRequest 對象。該對象代表一個進(jìn)行中的請求(request),該請求的消息頭已經(jīng)發(fā)送出去。
要獲得回應(yīng),可以為request 對象增加一個'response'事件的監(jiān)聽器。‘response’事件將在request 對象接收到響應(yīng) 頭的時候被觸發(fā),'response'事件的處理函數(shù)接收一個參數(shù),該參數(shù)是http.ClientResponse 的實例。
在'response'事件中,可以為response 對象增加監(jiān)聽器,監(jiān)聽'data'事件尤為有用。要記住,'response'事件是在接 收到回應(yīng)信息體之前被觸發(fā),所以這里不需要擔(dān)心信息體的第一部分不能被捕獲。只要在處理'response'事件過 程中增加'data'事件監(jiān)聽器,信息體是肯定可以被捕獲的。
// Good
request.on('response', function (response) {
response.on('data', function (chunk) {
console.log('BODY: ' + chunk);
});
});
// Bad - misses all or part of the body
request.on('response', function (response) {
setTimeout(function () {
response.on('data', function (chunk) {
console.log('BODY: ' + chunk);
});
}, 10);
});
這是一個可寫流
如下是此對象可以觸發(fā)的事件。
Event 'response'
function (response) { }
在響應(yīng)被接收后觸發(fā)。這個事件僅會被發(fā)出一次,參數(shù)response 是http.ClientResponse 的實例。
request.write(chunk, encoding='utf8')
發(fā)送body 中的一塊。用戶可以通過多次調(diào)用這個方法將請求數(shù)據(jù)包通過流的方式發(fā)送到服務(wù)器。在這個時候我 們建議使用在建立請求的時候把['Transfer-Encoding', 'chunked']放在請求頭里。 參數(shù)'chunk'應(yīng)當(dāng)是一個數(shù)字索引的數(shù)組或字符串。
參數(shù)'encoding'是可選的,僅在chunk 為字符串的時使用。
request.end([data], [encoding])
完成本次請求的發(fā)送。如果消息體中的任何一個部分沒有來得及發(fā)送,request.end 將把他們?nèi)克⑿碌搅髦小?如果本次請求是分塊的,這個函數(shù)將發(fā)出結(jié)束字符'0\r\n\r\n'。
如果使用參數(shù)data,就等于在調(diào)用request.write(data, encoding)之后緊接著調(diào)用request.end()。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: