摘要:一個第三方的模塊,可用于發(fā)起或請求,可理解成服務(wù)端的請求??捎糜诖唵蔚姆?wù)器代理,用法和類似。在使用前需要先安裝請求多參數(shù)設(shè)置請求支持和實現(xiàn)表單上傳。常用多參數(shù)設(shè)置流
Request
一個第三方的模塊,可用于發(fā)起 http 或 https 請求,可理解成服務(wù)端的 ajax 請求??捎糜诖唵蔚姆?wù)器代理,用法和 ajax 類似。
在使用前需要先安裝 npm install request --save
GET 請求request.get("https://cnodejs.org/api/v1/topics?page=1&limit=10", (error, response, body) => { console.log(body) }) //or request("https://cnodejs.org/api/v1/topics?page=1&limit=10", (error, response, body) => { console.log(body) })多參數(shù)設(shè)置
exports.get = function(url, options) { options = options || {}; var httpOptions = { url: url, method: "get", timeout: options.timeout || 10000, headers: options.headers || default_post_headers, proxy: options.proxy || "", agentOptions: agentOptions, params: options.params || {} } if(options.userAgent){ httpOptions.headers = { "User-Agent": userAgents[options.userAgent], } } try{ request.get(httpOptions, function(err, res, body) { if (err) { options.callback({status: false, error: err}) } else { options.callback({status: res.statusCode == 200, error: res, data: body}) } }).on("error", logger.error); } catch(err){ console.log("http error"); } }POST 請求
request支持application/x-www-form-urlencoded和multipart/form-data實現(xiàn)表單上傳。
application/x-www-form-urlencoded (URL-Encoded Forms)request.post("http://service.com/upload", {form:{key:"value"}}) // or request.post("http://service.com/upload").form({key:"value"}) // or request.post({url:"http://service.com/upload", form: {key:"value"}}, function(err,httpResponse,body){ /* ... */ })multipart/form-data (Multipart Form Uploads)
var formData = { // Pass a simple key-value pair my_field: "my_value", // Pass data via Buffers my_buffer: new Buffer([1, 2, 3]), // Pass data via Streams my_file: fs.createReadStream(__dirname + "/unicycle.jpg"), // Pass multiple values /w an Array attachments: [ fs.createReadStream(__dirname + "/attachment1.jpg"), fs.createReadStream(__dirname + "/attachment2.jpg") ], // Pass optional meta-data with an "options" object with style: {value: DATA, options: OPTIONS} // Use case: for some types of streams, you"ll need to provide "file"-related information manually. // See the `form-data` README for more information about options: https://github.com/form-data/form-data custom_file: { value: fs.createReadStream("/dev/urandom"), options: { filename: "topsecret.jpg", contentType: "image/jpeg" } } }; request.post({url:"http://service.com/upload", formData: formData}, function optionalCallback(err, httpResponse, body) { if (err) { return console.error("upload failed:", err); } console.log("Upload successful! Server responded with:", body); });常用多參數(shù)設(shè)置
exports.form_post = function(url, postdata, options) { // console.log(`${moment().format()} HttpFormPost: ${url}`) return new Promise((resolve, reject) => { options = options || {}; var httpOptions = { url: url, form: postdata, method: "post", timeout: options.timeout || 3000, headers: options.headers || default_post_headers, proxy: options.proxy || "", agentOptions: agentOptions }; request(httpOptions, function(err, res, body) { if (err) { reject(err); } else { if (res.statusCode == 200) { resolve(body); } else { reject(res.statusCode); } } }).on("error", logger.error); }); };流
request("http://img.zcool.cn/community/018d4e554967920000019ae9df1533.jpg@900w_1l_2o_100sh.jpg").pipe(fs.createWriteStream("test.png")) request("https://cnodejs.org/api/v1/topics?page=1&limit=10").pipe(fs.createWriteStream("cnodejs.json"))
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/94274.html
摘要:前言由于寫的文章已經(jīng)是有點多了,為了自己和大家的檢索方便,于是我就做了這么一個博客導(dǎo)航。 前言 由于寫的文章已經(jīng)是有點多了,為了自己和大家的檢索方便,于是我就做了這么一個博客導(dǎo)航。 由于更新比較頻繁,因此隔一段時間才會更新目錄導(dǎo)航哦~想要獲取最新原創(chuàng)的技術(shù)文章歡迎關(guān)注我的公眾號:Java3y Java3y文章目錄導(dǎo)航 Java基礎(chǔ) 泛型就這么簡單 注解就這么簡單 Druid數(shù)據(jù)庫連接池...
摘要:在前面教程中,我們使用了兩種類型的視圖和今天我們將學(xué)習(xí)使用另一種類型的視圖搜索視圖。大家可以試試看同時應(yīng)用多個分組,或者將分組和過濾器組合使用,仔細觀察和思考產(chǎn)生的結(jié)果。還是老規(guī)矩,教程中的代碼會更新在倉庫中。 showImg(https://segmentfault.com/img/bVbgO85?w=1950&h=1300); 在前面教程中,我們使用了兩種類型的視圖——TreeVi...
摘要:整合階段由于沒有對的快速啟動裝配,所以需要我自己導(dǎo)入相關(guān)的,包括數(shù)據(jù)源,包掃描,事物管理器等。另外它的中文文檔比較友好。源碼下載參考資料中文文檔 BeetSql是一個全功能DAO工具, 同時具有Hibernate 優(yōu)點 & Mybatis優(yōu)點功能,適用于承認以SQL為中心,同時又需求工具能自動能生成大量常用的SQL的應(yīng)用。 beatlsql 優(yōu)點 開發(fā)效率 無需注解,自動使用大...
摘要:歡迎關(guān)注我的微信公眾號獲取更多更全的學(xué)習(xí)資源,視頻資料,技術(shù)干貨公眾號回復(fù)學(xué)習(xí),拉你進程序員技術(shù)討論群,干貨資源第一時間分享。公眾號回復(fù)全棧,領(lǐng)取前端,,產(chǎn)品經(jīng)理,微信小程序,等資源合集大放送。公眾號回復(fù)面試,領(lǐng)取面試實戰(zhàn)學(xué)習(xí)資源。 前言 不知道大家有沒有這樣的感覺,在平時開發(fā)中,經(jīng)常有很多dao、service類中存著很多重復(fù)的代碼,Velocity提供了模板生成工具,今天我教大家怎...
閱讀 1130·2021-11-25 09:43
閱讀 1649·2021-09-13 10:25
閱讀 2613·2021-09-09 11:38
閱讀 3417·2021-09-07 10:14
閱讀 1728·2019-08-30 15:52
閱讀 651·2019-08-30 15:44
閱讀 3588·2019-08-29 13:23
閱讀 1986·2019-08-26 13:33