http.ClientRequest

2018-07-11 09:48 更新

http.Client 的request()方法建立并返回http.ClientRequest 對象。該對象代表一個進行中的請求(request),該請求的消息頭已經發(fā)送出去。

要獲得回應,可以為request 對象增加一個'response'事件的監(jiān)聽器?!畆esponse’事件將在request 對象接收到響應 頭的時候被觸發(fā),'response'事件的處理函數接收一個參數,該參數是http.ClientResponse 的實例。

在'response'事件中,可以為response 對象增加監(jiān)聽器,監(jiān)聽'data'事件尤為有用。要記住,'response'事件是在接 收到回應信息體之前被觸發(fā),所以這里不需要擔心信息體的第一部分不能被捕獲。只要在處理'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) { }

在響應被接收后觸發(fā)。這個事件僅會被發(fā)出一次,參數response 是http.ClientResponse 的實例。

request.write(chunk, encoding='utf8')

發(fā)送body 中的一塊。用戶可以通過多次調用這個方法將請求數據包通過流的方式發(fā)送到服務器。在這個時候我 們建議使用在建立請求的時候把['Transfer-Encoding', 'chunked']放在請求頭里。 參數'chunk'應當是一個數字索引的數組或字符串。

參數'encoding'是可選的,僅在chunk 為字符串的時使用。

request.end([data], [encoding])

完成本次請求的發(fā)送。如果消息體中的任何一個部分沒有來得及發(fā)送,request.end 將把他們全部刷新到流中。 如果本次請求是分塊的,這個函數將發(fā)出結束字符'0\r\n\r\n'。

如果使用參數data,就等于在調用request.write(data, encoding)之后緊接著調用request.end()。


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號