嘿大家好最近研究了下Node.js里那个http模块,真的很强大。不仅能快速搭起HTTP服务器,还能随便发出HTTP请求。今天就跟大家分享下我用http模块发HTTP请求的经验啦~
初识http.request()方法
const http = require('http'); const options = { hostname: 'www.example.com', port: 80, path: '/submit', method: 'POST', headers: { 'Content-Type': 'application/json' } }; const req = http.request(options, (res) => { console.log(`statusCode: ${res.statusCode}`); res.on('data', (data) => { console.log(data.toString()); }); }); req.on('error', (error) => { console.error(error); }); req.write(JSON.stringify({ key: 'value' })); req.end();
不用怕,http.request这玩意儿很容易上手,重点是得学会怎么设参数就行!
来和你们分享个好玩的事情我已经学懂怎么用HTTP.request()!这玩意儿超好用,能设请求头,调文件格式。最棒的是,就算程序出毛病了也不怕,因为我们可以在’error’事件里看Req对象,马上就能找出哪儿错了,真是太方便了!不管是传JSON数据还是填表单,统统搞定!
发送GET请求的技巧
明白?GET的这个用法就像咱们小时候乱按地址那会儿似的,在后面加个参数就能搞定了。就这么简单!
const http = require('http'); const query = 'q=nodejs'; const options = { hostname: 'www.example.com', port: 80, path: `/search?${query}`, method: 'GET' }; const req = http.request(options, (res) => { console.log(`statusCode: ${res.statusCode}`); res.on('data', (data) => { console.log(data.toString()); }); }); req.on('error', (error) => { console.error(error); }); req.end();
猜猜GET请求是什么东西?我给你举个简单的例子。比如说,你在网页地址后加个“q”参数,然后给它赋值为“nodejs”,接着放到“options”里面那个叫“path”的位置。最后,只需要调用http.request()这个函数,服务器就能接到我们的查询信息了!
发送POST请求的心得
你说POST是不是比GET简单点?其实就是我们得用它来给服务器传输信息,像表单,JSON这些。把资料都准备好了以后,只要用http.request()往出一扔就搞定。
POST请求头太大?表格数据处理不了URL查询字符串?别慌,酷炫的querystring模块stringify()方法在此!轻松搞定表单数据,就是这么简单!
发送JSON数据的尝试
知道怎么处理发单数据吗?转换下JSON数据,用好JSON.stringify()这个方法就可以轻松把它变成字符串啦~
const http = require('http'); const querystring = require('querystring'); const formData = { name: 'John Doe', email: 'johndoe@example.com', message: 'Hello, world!' }; const postData = querystring.stringify(formData); const options = { hostname: 'www.example.com', port: 80, path: '/contact', method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'Content-Length': postData.length } }; const req = http.request(options, (res) => { console.log(`statusCode: ${res.statusCode}`); res.on('data', (data) => { console.log(data.toString()); }); }); req.on('error', (error) => { console.error(error); }); req.write(postData); req.end();
搞定JSON发送,费劲琢磨请求头,原来得改成’application/json’。这下,JSON传起来溜溜哒!
总结与反思
搞定!总算搞懂Node.js里的http模块了,用http.request()发个HTTP请求简单到不行,有啥难题也都能快速搞定!这招儿以后编程肯定能用上!
我对HTTP有些晕乎乎的,像那个HTTP协议到底是啥呀?正好趁此机会学习研究一下这个玩意儿,顺便提升一下我那不咋地的编程技能。
大家有没有碰到过HTTP请求的问题呀?快来评论区说说你们是怎么解决的!觉得我这篇文章棒的话,赏个赞分享出去呗,让大家都看看~
const http = require('http'); const jsonData = { name: 'John Doe', email: 'johndoe@example.com', message: 'Hello, world!' }; const postData = JSON.stringify(jsonData); const options = { hostname: 'www.example.com', port: 80, path: '/api', method: 'POST', headers: { 'Content-Type': 'application/json', 'Content-Length': postData.length } }; const req = http.request(options, (res) => { console.log(`statusCode: ${res.statusCode}`); res.on('data', (data) => { console.log(data.toString()); }); }); req.on('error', (error) => { console.error(error); }); req.write(postData); req.end();
评论0