日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

node.js http客户端

發(fā)布時間:2024/8/23 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 node.js http客户端 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? ? ?一、http模塊提供了兩個函數(shù)http.request和http.get,功能是作為客戶端向HTTP服務(wù)器發(fā)起請求。

Ext.Ajax.request({},function(response))

????????????1.http.request(options,callback)發(fā)起HTTP請求,接受兩個參數(shù),option是一個類似關(guān)聯(lián)數(shù)組的對象,表示請求的參數(shù),callback是請求的回調(diào)函數(shù),option常用的參數(shù)如下

host:請求網(wǎng)站的域名或IP地址 port:請求網(wǎng)站的端口,默認是80, method:請求方法,模式是GET/POST path:請求的相對于根的路徑,默認是"/"。QueryString應(yīng)該包含在其中,例如/search?query=marico headers:一個關(guān)聯(lián)數(shù)組對象,為請求頭的內(nèi)容 callback傳遞一個參數(shù),為http.ClientResponse的實例 http.request返回一個http.ClientRequest的實例 案例:clientRequest.js var http=require('http'); var querystring=require('querystring'); //啟動服務(wù) http.createServer(function(req,res){console.log('請求到來,解析參數(shù)');//解析post請求var post='';req.on('data',function(chunk){post+=chunk;});req.on('end',function(){post=querystring.parse(post);//解析完成console.log('參數(shù)解析完成,返回name參數(shù)');res.end(post.name);}); }).listen(3000);//客戶端請求 var contents=querystring.stringify({name:'marico',age:21,address:'beijing' }); //Ext.encode(); //聲明請求參數(shù) var options={host:'localhost',path:'/',port:3000,method:'POST',headers:{'Content-Type':'application/x-www-form-urlencoded','Content-Length':contents.length} }; //發(fā)送請求 var req=http.request(options,function(res){res.setEncoding('utf-8');res.on('data',function(data){console.log('后臺返回數(shù)據(jù)');console.log(data);}) }); req.write(contents); //必須調(diào)用end() req.end();


????????????2.http.get(options,callback) http模塊還提供了一個更加簡便的方法用于處理GET請求:http.get。它是http.request的簡化版,唯一的區(qū)別在于http.get自動將請求方法設(shè)為GET請求,同時不需要手動調(diào)用req.end();

案例:clientGet.js var http=require('http'); var url=require('url'); var util=require('util'); //啟動服務(wù) http.createServer(function(req,res){console.log('請求到來,解析參數(shù)');var params=url.parse(req.url,true);console.log('解析完成');console.log(util.inspect(params));console.log('向客戶端返回');res.end(params.query.name); }).listen(3000);//客戶端請求 var request=http.get({host:'localhost',path:'/user?name=marico&age=21',port:3000},function(res){res.setEncoding('utf-8');res.on('data',function(data){console.log(' 服務(wù)端相應(yīng)回來的數(shù)據(jù)為:'+data);}) });

????二、http.ClientRequest

該對象是由http.request或http.get返回產(chǎn)生的對象,表示一個已經(jīng)產(chǎn)生而且正在進行的HTTP請求,它提供了response事件,即http。request或http.get第二個參數(shù)制定的回調(diào)函數(shù)的綁定對象,請求必須調(diào)用end方法結(jié)束請求。 提供的函數(shù): request.abort() 終止正在發(fā)送的請求 request.setTimeout(timeout,[callback]) 設(shè)置請求超時時間,timeout為毫秒數(shù),當請求超時后,callback將會被調(diào)用 其它:request.setNoDelay([noDelay])、request.setScoketKeepAlive([enable],[initialDelay])等函數(shù)。 API地址:http://nodejs.org/api/http.html

????三、http.ClientResponse

http.ClientReponse是與http.ServerResponse相似,提供三個事件,data、end和close,分別在數(shù)據(jù)到達,傳輸結(jié)束和連接結(jié)束時觸發(fā),其中data事件傳遞一個參數(shù)chunk,表示接受到的數(shù)據(jù) 屬性,表示請求的結(jié)果狀態(tài) statusCode?? HTTP狀態(tài)碼,如200,404,500 httpVersion:HTTP協(xié)議版本 headers:HTTP請求頭 trailers:HTTP請求尾 函數(shù): response.setEncoding([encoding]):設(shè)置默認的編碼,當data事件被觸發(fā)時,數(shù)據(jù)將以encoding編碼。默認值為null,以buffer的形式存儲。 response.pause():暫停接受數(shù)據(jù)和發(fā)送事件,方便實現(xiàn)下載功能。 response.resume():以暫停的狀態(tài)中恢復(fù)

總結(jié)

以上是生活随笔為你收集整理的node.js http客户端的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。