node请求下载接口时乱码

Posted 罗知晏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node请求下载接口时乱码相关的知识,希望对你有一定的参考价值。

先说下问题

之前做的一个项目,三端同时开发(PC、WEB、APP),由于架构方面的原因,服务均不对外开放,接口地址自然也就不对外暴露了,所有请求都要经过node转发,此为背景。。。。

网站有个扫描二维码下载APP的功能,二维码对应的地址并不是一个静态文件地址,而是一个API接口,后台做了一些逻辑(比如统计下载次数),之后再返回apk文件由浏览器进行下载,但是问题出现了,在地址栏直接输入地址时是可以下载的,但是经过node转发之后,显示到页面上的都是乱码,并且没有下载,分析了下原因:

由于二维码对应的并不是一个静态文件地址,需要请求后台接口,再由后台进行逻辑处理,而node转发接口之后是直接返回页面的,而此时返回的却是apk文件,所以就乱码了,最后解决办法是在转发之后做了一下重定向,再次去访问这个API地址,效果就跟在地址栏输入是一样的了。

附上代码:

router.get(‘/version/apk‘, function (req, res) {
    var url = urlMap.englishlistenspeakserver + ‘/version/increaseDownloadAmountForandroid;
    res.redirect(302, url);
});

 

以上是关于node请求下载接口时乱码的主要内容,如果未能解决你的问题,请参考以下文章

RestTemplate--解决中文乱码

node.js解决客户端请求数据里面中文乱码的事件

node.js解决客户端请求数据里面中文乱码的事件

关于HttpClient的学习心得,请求参数中文乱码问题

jmeter请求参数时,中文出现乱码的解决方法

jmeter请求参数时,中文出现乱码的解决方法