【问题标题】:Get the response "ContentType" in a nodejs http request在 nodejs http 请求中获取响应“ContentType”
【发布时间】:2016-05-10 10:42:12
【问题描述】:

我想通过 http 下载文件并检查“ContentType”响应标头。我的下载看起来像这样:

var fileUrl = "<url>";
var request = https.get(fileUrl, function (res) {
res.on('data', function (data) {
    //...
});
res.on('error', function (error) {
    //...;
});

我得到了数据,但是有什么方法可以访问内容类型响应头吗?

【问题讨论】:

    标签: node.js


    【解决方案1】:

    res 变量是http.IncomingMessage 的一个实例,它有一个包含标题的headers 属性:

    var request = https.get(fileUrl, function (res) {
      var contentType = res.headers['content-type'];
      ...
    });
    

    【讨论】:

    • 也可以绑定request.once('response', (res) =&gt;{res.headers;})获取。
    • @mh-cbon 将回调传递给https.get() 基本相同(它是response 事件的一次性监听器)。
    【解决方案2】:

    如果您只想获取 mime-type,请注意 Content-Type 标头可以包含其他信息,例如字符集或边界。

    使用content-type-parser等解析器,而不是直接读取header。

    const contentTypeParser = require("content-type-parser");
    const contentType = contentTypeParser(req.headers['content-type']);
    const mimeType = contentType.type+'/'+contentType.subtype;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-26
      • 1970-01-01
      • 1970-01-01
      • 2013-08-09
      • 1970-01-01
      • 2016-09-14
      • 1970-01-01
      • 2013-07-22
      相关资源
      最近更新 更多