node-js请求https出现乱码解决方案

使用node.js请求https,代码如下:
var options = {
    hostname: "www.xxx.com",
    port: 443,
    path: "/api/xxx",
    method: "POST",
    rejectUnauthorized: false,
    headers: {
        Accept: "*/*",
        'Content-Type':  'text/html;  charset=utf-8',
        Connection: "keep-alive",
        //后台定义的header
        token: "",
        version: "1"
    }
};

var req = https.request(options, function(res) {
    console.log(`HEADERS: ${JSON.stringify(res.headers)}`);
    res.setEncoding('utf-8');
    var mData = '';
    res.on("data", function(d) {
        console.log('===================================data===========' + d);
        mData += d;
    });
    res.on("end", function() {
        var data = JSON.parse(mData);
        if (data.code == "000000") {
            //成功处理
        } else {
            vscode.window.showInformationMessage("请求失败:" + data.msg);
        }
    });
});
req.end();
req.on("error", function(e) {
    console.error("====================================================" + e);
});
通过控制台查看console.log(`HEADERS: ${JSON.stringify(res.headers)}`)结果,
查看里面是"content-type":"application/json;charset=utf-8",可以看到后台定义的格式是utf-8;
这里返回什么格式我们就需要用什么格式去解码。
最主要方法:res.setEncoding(‘utf-8’);

在网上看到好几种解决乱码的方法都没有效,这次碰到问题记录一下,方便以后别人的需要。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值