当前位置: 首页 > 面试题库 >

nodejs http.get响应中的主体在哪里?

章哲彦
2023-03-14
问题内容

我正在http://nodejs.org/docs/v0.4.0/api/http.html#http.request上阅读文档,但是由于某些原因,我似乎无法真正找到body
/ data属性在返回的完成响应对象上。

> var res = http.get({host:'www.somesite.com', path:'/'})

> res.finished
true

> res._hasBody
true

完成(http.get为您完成),因此它应该具有某种内容。但是没有主体,没有数据,我无法读取。身体藏在哪里?


问题答案:

编辑:6年后回复自我

AWAIT 关键字是获得从HTTP请求的响应的最佳方式,避免回调和.then()

您还需要使用返回Promises的HTTP客户端。
http.get()仍会返回一个Request对象,因此将无法正常工作。您可以使用fetch,但它superagent是一个成熟的HTTP客户端,它具有更合理的默认值,包括更简单的查询字符串编码,正确使用mime类型,默认情况下为JSON和其他常见的HTTP客户端功能。await将等待,直到Promise具有值-
在这种情况下,将是HTTP响应!

const superagent = require('superagent');

(async function(){
  const response = await superagent.get('https://www.google.com')
  console.log(response.text)
})();

使用wait,一旦返回的promise 具有值,控制 就简单地转到下一行superagent.get()



 类似资料:
  • 在过去的几天里,我通过使用reqwest板条箱在Rust中构建一个简单的CL下载管理器来处理HTTP的东西,来处理HTTP。我已经对协议的工作原理有了基本的了解--下载文件时要查找什么头,如何验证请求是否有效等等--但是我很难找到HTTP响应主体中实际字节存储在哪里的答案。 例如,使用reqwest发送请求并获得响应需要很少的时间,所以我认为在这个阶段不可能进行下载。实际上需要时间的是从正文中读取

  • 问题内容: 我正在发出HTTP请求并侦听“数据”: 问题在于响应是分块的,因此“数据”只是发送回的一部分内容。 我如何将全身退回? 问题答案:

  • 问题内容: 标题应该很漂亮。 出于调试目的,我想表达为每个服务请求打印响应代码和正文。打印响应代码很容易,但是打印响应主体比较棘手,因为似乎响应主体不容易用作属性。 以下内容不起作用: 当然,我可以轻松地在发出请求的客户端上打印响应,但是我也希望在服务器端进行打印。 PS:如果有帮助,我的所有回复都是json,但希望有一个可以与一般回复配合使用的解决方案。 问题答案: 不确定这是否是最简单的解决方

  • 但是我总是在方法中获得响应。因此,我尝试使用查看响应的错误主体。错误正文包含与原始响应完全相同的内容。 我用控制了response,看看我是否修改了我的响应类wright,它似乎可以。 为什么改型无法转换我的响应? 更新

  • 我正在尝试测试我的Quarkus应用程序。我想检查响应是否大于 0,问题是我调用的终结点返回的是 String 而不是数字。如何将响应转换为数字并检查它是否大于 0? 这是我收到的回复:“28357”。这是我得到的错误:

  • 我的问题与贴在这里的问题有关。 我不得不重新表述我的问题,因为我觉得前面的问题太冗长了。再来一次! 我有一个REST API,它返回一个资产列表,它是这样编码的: 它产生的反应是这样的: 我有60多个服务在我的应用程序遵循相同的响应模板: 以下是代表我们响应模板的RestResponse POJO: 现在,我们使用Swagger记录所有API,遇到了一个问题。 由于我们将为所有API返回类,因此我