啰嗦事情的起因吧,最近在接入某美的影片接口,按照他们提供的文档试了一个接口,返回的是gbk编码的xml,服务端用的是nodejs,试了各种编码转换依然没有解决问题,相信努力总会有回报的,参考了https://www.oschina.net/code/snippet_1052456_26611,这篇文章,作者封装了原生的http请求,而没有用fetch,其实看到它这篇文章的时候几乎已经放弃了希望,奢求某美能改下返回的编码格式。
httpHelper.js ~ 5KB 下载
var httpHelper = require("../utils/httpHelper");
var requestPromise = await new Promise((resolve, reject) => {
httpHelper.get(url_get, 10000, function (err, data) {
resolve(data);
}, 'gbk', {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36'
});
}).then(function (data) {
xml2js.parseString(data, function (err, result) {//xml转json部分,重点在上边
if (result.response == null) {
return null;
} else {
dataarray = result.response;
}
});
}, function (error) {
think.logger.debug("请求错误" + error.toString());
});
非常感谢https://www.oschina.net/code/snippet_1052456_26611的作者