Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
使用 Got 在 Nodejs 中发出 HTTP 请求_创想鸟

使用 Got 在 Nodejs 中发出 HTTP 请求

在 node.js 中构建应用程序时,无论您是与外部 api 交互、获取数据还是在服务之间通信,发出 http 请求都是一项基本任务。虽然 node.js 具有用于发出请求的内置 http 模块,但它并不是最用户友好或功能丰富的解决方案。这就是像 got 这样的图书馆的用武之地。

got 是一个轻量级、功能丰富且基于 promise 的 node.js http 客户端。它简化了发出 http 请求的过程,提供了干净的 api、自动重试、对流的支持等等。在本文中,我们将探讨如何使用 got 来发出 http 请求和处理错误。

为什么选择 got 来处理 http 请求?

在深入研究代码之前,了解为什么 got 是许多开发人员的首选是很重要的:

简单的 api: got 提供了干净直观的 api,可以轻松执行各种类型的 http 请求。基于 promise: got 完全基于 promise,允许您使用 async/await 语法来获得更清晰、更易读的代码。自动重试: got 可以在网络故障或其他问题时自动重试请求,这对于提高应用程序的可靠性特别有用。支持流: got 支持流,这对于下载大文件或处理块数据非常有用。可定制: got 是高度可定制的,可以选择修改标头、查询参数、超时等。

安装got

要开始使用 got,您首先需要将其安装到 node.js 项目中。如果您尚未设置 node.js 项目,请按照以下步骤操作:

初始化您的项目:打开终端并为您的项目创建一个新目录:

   mkdir got-http-requests   cd got-http-requests   npm init -y

此命令创建一个新的项目目录并使用 package.json 文件对其进行初始化。

安装 got: 接下来,使用 npm 安装 got:

   npm install got

got 现已添加到您的项目中,您可以开始使用它来发出 http 请求。

使用 got 发出 http 请求

got 可以轻松执行各种类型的 http 请求。让我们来看看一些常见的用例。

1. 发出基本的 get 请求

get 请求是最常见的 http 请求类型,通常用于从服务器检索数据。使用 got,发出 get 请求非常简单:

const got = require('got');(async () => {    try {        const response = await got('https://jsonplaceholder.typicode.com/posts/1');        console.log('get request:');        console.log(response.body);    } catch (error) {        console.error('error in get request:', error.message);    }})();

说明:endpoint: https://jsonplaceholder.typicode.com/posts/1 是一个测试 api,返回 id 为 1 的帖子的详细信息。got 语法:got(url) 函数向指定的 url 发送 get 请求。响应被作为承诺处理,允许我们使用await来等待响应。响应: 响应正文记录到控制台,其中将包含帖子的 json 数据。

2. 发出 post 请求

post 请求用于将数据发送到服务器,通常用于创建新资源。使用 got,您可以轻松地在 post 请求中发送 json 数据:

const got = require('got');(async () => {    try {        const response = await got.post('https://jsonplaceholder.typicode.com/posts', {            json: {                title: 'foo',                body: 'bar',                userid: 1            },            responsetype: 'json'        });        console.log('post request:');        console.log(response.body);    } catch (error) {        console.error('error in post request:', error.message);    }})();

说明:端点: https://jsonplaceholder.typicode.com/posts 用于在服务器上创建新帖子。json 数据: got 请求中的 json 选项允许您指定要发送的数据。在这里,我们将发送一篇带有标题、正文和用户 id 的新帖子。响应: 服务器的响应(包括与新 id 一起发送的数据)会记录到控制台。

3. 处理错误

http 请求期间可能会出现网络问题或服务器错误。 got 提供了一种简单的方法来处理这些错误:

const got = require('got');(async () => {    try {        const response = await got('https://nonexistent-url.com');        console.log(response.body);    } catch (error) {        console.error('error handling example:', error.message);    }})();

说明:不存在的 url: 此示例尝试向不存在的 url 发出 get 请求。错误处理: 当请求失败时 got 自动抛出错误。 catch 块捕获此错误并将错误消息记录到控制台。

got 的高级功能

got 不仅仅是发出简单的 get 和 post 请求。它配备了一些高级功能,可以帮助您处理更复杂的场景。

1. 自定义请求选项

got 允许您通过设置标头、查询参数、超时等来自定义请求:

const got = require('got');(async () => {    try {        const response = await got('https://jsonplaceholder.typicode.com/posts/1', {            headers: {                'user-agent': 'my-custom-agent'            },            searchparams: {                userid: 1            },            timeout: 5000        });        console.log('customized request:');        console.log(response.body);    } catch (error) {        console.error('error in customized request:', error.message);    }})();

说明:标头: 您可以使用 headers 选项设置自定义标头。在这里,我们设置了一个自定义的 user-agent。查询参数: searchparams 选项允许您向 url 添加查询参数。超时: 超时选项设置请求在抛出错误之前可以花费的最长时间(以毫秒为单位)。

2. 与 got 一起直播

got 支持流式传输,这对于处理大数据或处理文件很有用:

const fs = require('fs');const got = require('got');(async () => {    const downloadStream = got.stream('https://via.placeholder.com/150');    const fileWriterStream = fs.createWriteStream('downloaded_image.png');    downloadStream.pipe(fileWriterStream);    fileWriterStream.on('finish', () => {        console.log('Image downloaded successfully.');    });})();

说明:流式传输: got.stream(url) 函数发起流式 get 请求。数据直接通过管道传输到可写流,例如文件。文件写入: fs.createwritestream() 函数用于将流式数据写入文件。

使用 Got 在 Nodejs 中发出 HTTP 请求

在这里下载源代码。

结论

got 是一个多功能且强大的库,用于在 node.js 中发出 http 请求。它通过提供干净直观的 api 简化了与 web 服务交互的过程,同时还提供错误处理、超时和流等高级功能。无论您是构建简单的脚本还是复杂的应用程序,got 都是处理 http 请求的绝佳选择。

通过使用 got,您可以编写更清晰、更易于维护的代码,并利用其强大的功能集来满足您的应用程序的需求。因此,下次您需要在 node.js 中发出 http 请求时,请考虑使用 got 以获得无忧无虑的体验。

感谢您的阅读…

快乐编码!

文章 making http requests in node.js with got 首次出现在 innovate with folasayo 上。

文章 making http requests in node.js with got 首先出现在 innovate with folasayo 上。

以上就是使用 Got 在 Nodejs 中发出 HTTP 请求的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1490894.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
AWS #hiring 软件开发工程师 II
上一篇 2025年12月19日 13:31:49
庆祝开源贡献:成长与协作之旅
下一篇 2025年12月19日 13:32:04

相关推荐

  • VSCode如何实现移动端调试 VSCode连接Android/iOS设备的技巧

    vscode本身不支持移动端调试,但可通过插件和工具间接实现。1. 调试android应用时,需开启设备开发者模式和usb调试,连接电脑后通过chrome浏览器访问chrome://inspect/#devices,使用chrome devtools调试webview;可配合vscode的debug…

    2026年9月24日
    100
  • 如何检测Linux网络丢包率 ping统计信息分析技巧

    如何检测Linux网络丢包率 ping统计信息分析技巧如何检测Linux网络丢包率 ping统计信息分析技巧如何检测Linux网络丢包率 ping统计信息分析技巧如何检测Linux网络丢包率 ping统计信息分析技巧

    使用ping命令检测linux网络丢包率时,应先看“% packet loss”数值,再分析rtt和mdev变化;排查问题需按步骤进行:1. ping 127.0.0.1确认系统是否正常;2. ping网关检查局域网或路由器问题;3. ping外网ip判断isp或中间路由问题;结合mtr/trace…

    2026年9月23日 • 用户投稿
    800
  • 抖音怎么绑定微信?抖音怎么绑定微信好友

    抖音作为当下最受欢迎的短视频平台之一,凭借其强大的功能和丰富的社交属性吸引了众多用户。与此同时,微信作为国内主流社交工具,拥有广泛的用户基础。将抖音与微信进行绑定,不仅可以实现账号互通,还能方便地分享内容、拓展社交关系。接下来的内容将详细介绍抖音绑定微信的操作流程及相关注意事项。 一、抖音绑定微信的…

    2026年9月23日
    900
  • 一加手机微信收款语音播报怎么设置?解决配置问题的详细教程

    首先确保微信为最新版本,进入微信“我”-“服务”-“收付款”-“收款小账本”,开启“收款语音提醒”;在一加手机设置中,进入“应用管理”找到微信,确保通知、悬浮窗、麦克风和存储权限已开启,并关闭省电模式及屏幕阅读器功能,若仍无播报,可清除微信缓存或重启设备。 一加手机微信收款语音播报的设置,其实并不复…

    2026年9月23日
    1300
  • 抖音直播间提示网络不稳定怎么办 抖音直播网络优化与稳定方法

    答案:解决抖音直播间网络不稳定需确保上传带宽充足与连接稳定。首先使用有线连接替代Wi-Fi,手机可通过USB转网口适配器接入网线,电脑直接连接路由器,显著降低延迟;其次测试上传速率,确保高于推流码率并保留20%-30%余量,优先选用电信、联通或中国广电5G网络,准备热点或双卡热备提升可靠性;最后关闭…

    2026年9月23日
    900
  • 悟空浏览器如何禁用QUIC协议解决网络问题_悟空浏览器关闭QUIC协议操作指南

    首先禁用QUIC协议,进入悟空浏览器地址栏输入wukong://flags,搜索quic并选择禁用,重启浏览器;其次调整网络设置,将IP改为静态并手动设置DNS为8.8.8.8和8.8.4.4;最后清除浏览器缓存与应用数据以重置网络状态。 如果您在使用悟空浏览器时遇到网络连接不稳定、加载缓慢或特定网…

    2026年9月23日
    400
  • QQ邮箱接收邮件异常如何处理

    QQ邮箱接收异常多因网络、设置或安全问题。1. 检查网络连接,切换Wi-Fi或移动数据测试;2. 确认IMAP/POP设置正确,服务器分别为imap.qq.com(端口993)和pop.qq.com(端口995),均需启用SSL;3. 在“设置-账户”中开启IMAP/POP服务,使用授权码登录第三方…

    2026年9月23日
    100
  • VSCode极速配置Scala:sbt支持、中文文档、REPL集成

    安装JDK和sbt后,在VSCode中安装Metals扩展,即可快速搭建Scala开发环境;2. Metals通过LSP和BSP协议实现代码补全、错误检查、重构及sbt项目自动导入;3. 支持通过sbt shell启动REPL或使用Run Worksheet实现交互式编程;4. 虽无内置中文文档,但…

    2026年9月23日
    100
  • vivoY系列微信收款语音播报如何设置?快速设置语音的实用方法

    先在微信内开启收款语音提醒,再确保vivo手机系统中微信的通知权限、后台运行和电池优化设置正确,避免静音或勿扰模式干扰,即可解决语音不响问题。 vivo Y系列手机上设置微信收款语音播报,核心在于微信应用内部的设置,同时需要确保手机系统层面的通知权限和后台运行策略没有限制它。简单来说,就是先在微信里…

    2026年9月22日
    200
  • vivoS系列手机微信收款语音播报怎么设置?配置语音的详细方法

    开启微信收款语音播报需在微信“收付款”中启用“收款语音提醒”并授权麦克风权限;2. vivo手机需在设置中开启微信的自启动、后台运行、通知及麦克风权限以确保功能正常;3. 语音播报延迟或无声可能由网络、手机性能、微信版本、系统模式或第三方软件干扰导致;4. 除微信自带功能外,还可选用第三方收款App…

    2026年9月22日
    700
  • 怎样在iPhone情侣模式中启用双人定位?实时查看对方位置的方法

    答案是利用“查找”App实现情侣位置共享。通过开启“共享我的位置”并邀请伴侣加入,选择无限期共享,双方互享位置后即可实时查看对方位置,确保定位准确需开启定位服务、稳定网络并更新系统;也可选用“微爱”“亲宝宝”或“Google 地图”等替代App。 iPhone情侣模式,其实就是利用苹果自带的“查找”…

    2026年9月22日
    100
  • 如何配置Android开发环境 Android Studio安装与JDK配置方法

    答案:配置Android开发环境需先安装JDK并设置环境变量,再下载安装Android Studio,配置SDK及虚拟设备,最后创建项目测试。具体步骤包括:1. 安装JDK 17并配置JAVA_HOME和Path;2. 从官网下载Android Studio并安装,自动集成SDK;3. 通过SDK …

    2026年9月22日
    200
  • iPhone情侣模式如何启用双人屏幕共享?远程互动的实用设置教程

    iPhone上所谓的“情侣模式”实为FaceTime的同播共享功能。1. 需通过FaceTime通话发起,点击共享图标即可启动;2. 可选择共享整个屏幕或特定应用内容,如视频、音乐等;3. 双方可同步观看、聆听或浏览,互动实时且协调;4. 使用时需注意隐私安全,建议开启勿扰模式,避免展示敏感信息;5…

    2026年9月22日
    100
  • VSCode如何实现代码可视化调试 VSCode执行流程图形化分析方法

    vscode的可视化调试功能通过内置调试器和扩展生态,显著提升代码理解与问题排查效率。1. 首先配置launch.json文件以定义调试环境,支持多种语言如node.js、python等;2. 在代码中设置断点,程序运行至断点时暂停,便于检查变量状态和执行上下文;3. 利用调试面板查看变量、监视表达…

    2026年9月22日
    100
  • 蝴蝶号直播掉帧、断流怎么办?技术实用建议

    蝴蝶号直播掉帧、断流怎么办?技术实用建议蝴蝶号直播掉帧、断流怎么办?技术实用建议蝴蝶号直播掉帧、断流怎么办?技术实用建议蝴蝶号直播掉帧、断流怎么办?技术实用建议

    解决蝴蝶号直播掉帧、断流问题需从硬件、软件、网络三方面入手。1. 硬件方面:检查cpu和gpu压力,必要时升级硬件或降低分辨率、帧率;确保摄像头、采集卡、内存正常工作。2. 软件方面:调整分辨率、帧率、码率至合适水平;使用h.265或硬件编码减轻cpu负担;设置关键帧间隔为2秒;关闭后台程序并检查平…

    2026年9月21日 • 用户投稿
    300
  • 微信收藏内容丢失怎么办

    首先检查网络并刷新收藏页面,确认是否误删或设备缓存问题;接着通过电脑版或其他设备登录同一账号查看收藏是否同步存在;若内容仍可访问,说明数据未丢失,可重新同步;若已丢失且无备份,则无法通过官方途径单独恢复;建议将重要收藏导出为文档、截图或转发至“文件传输助手”,并定期同步至云笔记应用;同时保持微信更新…

    2026年9月21日
    300
  • 夸克浏览器打开视频慢怎么办 夸克浏览器视频播放缓慢优化方法

    夸克浏览器打开视频慢怎么办 夸克浏览器视频播放缓慢优化方法夸克浏览器打开视频慢怎么办 夸克浏览器视频播放缓慢优化方法夸克浏览器打开视频慢怎么办 夸克浏览器视频播放缓慢优化方法夸克浏览器打开视频慢怎么办 夸克浏览器视频播放缓慢优化方法

    视频加载慢可通过优化网络、清理缓存、关闭省流模式及更新浏览器解决。优先使用稳定Wi-Fi或5GHz频段,关闭占用带宽应用;清除浏览数据释放性能;关闭省流加速与广告拦截避免误伤资源;及时更新至最新版本修复兼容性问题。 夸克浏览器打开视频慢,通常与网络环境、缓存问题或设置不当有关。想要提升视频加载速度,…

    2026年9月20日 • 用户投稿
    400
  • 用手机打《黑神话:悟空》?实测能玩,但是不推荐

    用手机打《黑神话:悟空》?实测能玩,但是不推荐用手机打《黑神话:悟空》?实测能玩,但是不推荐用手机打《黑神话:悟空》?实测能玩,但是不推荐用手机打《黑神话:悟空》?实测能玩,但是不推荐

    自《黑神话:悟空》上线以来,热度未曾下降,各大平台每天都有好多个热搜。可惜对于手机玩家来说,热闹只属于 pc 玩家、主机玩家和掌机玩家。那怎么行,我们搞手机的不能输。 首先我们排除在手机上运行黑猴的思路,作为一个体积 100 多 GB 的大型 3A 游戏,性能需求是很高的,而且大量的渲染技术都是针对…

    2026年9月20日 • 用户投稿
    200
  • 在Java中如何捕获Socket关闭时的异常

    正确处理Java Socket关闭异常需捕获IOException、SocketException等,在finally块或try-with-resources中安全关闭资源,避免多线程竞争,并检查isClosed状态防止重复关闭。 当使用Java进行网络编程时,Socket在关闭过程中可能会引发异常…

    2026年9月20日
    000
  • 抖音未读消息显示异常?3招解决

    抖音未读消息显示异常,比如有红点但找不到新消息,或者聊天不显示“已读”状态,多半是设置或网络问题。不用着急,试试这三个常用方法。 检查隐私和通知权限 这是最常见的原因。先确认你的隐私设置没有限制消息的正常显示。 进入抖音「我」→「设置」→「隐私设置」,确保「在线状态」和「活跃状态」是开启的。在「谁可…

    2026年9月12日
    100

发表回复

登录后才能评论
关注微信