所有分类
  • 所有分类
  • 后端开发
Node.js 中使用 http 模块发送 HTTP 请求的简单示例与异常处理

Node.js 中使用 http 模块发送 HTTP 请求的简单示例与异常处理

登录后复制事件来处理请求和响应过程中的异常情况和响应数据。中添加查询参数来传递参数。登录后复制请求时,我们通常需要将一些数据发送给服务器。我们需要以指定格式编码数据,并将其发送到服务器。发送表单数据让我们看一个例子,向服务器发送表单数据。登

嘿大家好最近研究了下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();

原文链接:https://www.icz.com/technicalinformation/web/2024/06/17696.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?